<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Emulatrix</title>
		<link rel="stylesheet" href="Emulatrix.css">
	</head>
	<body>
		<script>
			var CPU_TYPE = "auto"; // auto | 386 | 386_slow | 486_slow | pentium_slow | 386_prefetch
			var CPU_RAMSIZE = "64";

			var game_data;

			var SAVEDATA;
			var SAVENAME;

			var download_PathRoot = "/c";
			var download_PathCurrent = "/c";

			var upload_PathRoot = "/c";
			var upload_PathCurrent = "/c";

			var mySavedGameLabelTimeout;

			// browserfs.min.js
			!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.BrowserFS=e():t.BrowserFS=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){(function(t,r,i,o){"use strict";function s(t){if(t)return t;throw new me(ge.EIO,"Initialize BrowserFS with a file system using BrowserFS.initialize(filesystem)")}function a(t,e){switch(typeof t){case"number":return t;case"string":var n=parseInt(t,8);return isNaN(n)?e:n;default:return e}}function c(t){if(t instanceof Date)return t;if("number"==typeof t)return new Date(1e3*t);throw new me(ge.EINVAL,"Invalid time.")}function u(t){if(t.indexOf("\0")>=0)throw new me(ge.EINVAL,"Path must be a string without null bytes.");if(""===t)throw new me(ge.EINVAL,"Path must not be empty.");return ye.resolve(t)}function f(t,e,n,r){switch(typeof t){case"object":return{encoding:"undefined"!=typeof t.encoding?t.encoding:e,flag:"undefined"!=typeof t.flag?t.flag:n,mode:a(t.mode,r)};case"string":return{encoding:t,flag:n,mode:r};default:return{encoding:e,flag:n,mode:r}}}function h(){}function p(){throw new Error("BFS has reached an impossible code path; please file a bug.")}function l(t,e,n){n.existsSync(t)||(l(ye.dirname(t),e,n),n.mkdirSync(t,e))}function d(t){var e=y(t),n=e.byteOffset,r=e.byteLength;return 0===n&&r===e.buffer.byteLength?e.buffer:e.buffer.slice(n,n+r)}function y(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function g(t){return t instanceof r?t:t instanceof Uint8Array?_(t):new r(t)}function _(t){return t instanceof r?t:0===t.byteOffset&&t.byteLength===t.buffer.byteLength?v(t.buffer):new r(t)}function v(t){try{return new r(t)}catch(e){return new r(new Uint8Array(t))}}function w(t,e,n){if(void 0===e&&(e=0),void 0===n&&(n=t.length),e<0||n<0||n>t.length||e>n)throw new TypeError("Invalid slice bounds on buffer of length "+t.length+": ["+e+", "+n+"]");if(0===t.length)return new r(0);var i=y(t),o=t[0],s=(o+1)%255;return t[0]=s,i[0]===s?(i[0]=o,_(i.slice(e,n))):(t[0]=o,_(i.subarray(e,n)))}function m(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function E(t,e,n){return e=Ve(void 0===e?t.length-1:e,0),function(){for(var r=arguments,i=-1,o=Ve(r.length-e,0),s=Array(o);++i<o;)s[i]=r[e+i];i=-1;for(var a=Array(e+1);++i<e;)a[i]=r[i];return a[e]=n(s),m(t,this,a)}}function S(t){return t}function b(t,e){return E(t,e,S)}function k(t){return b(function(e,n){var r=We(function(n,r){var i=this;return t(e,function(t,e){t.apply(i,n.concat([e]))},r)});return n.length?r.apply(this,n):r})}function I(t){var e=Ge.call(t,Qe),n=t[Qe];try{t[Qe]=void 0;var r=!0}catch(t){}var i=Je.call(t);return r&&(e?t[Qe]=n:delete t[Qe]),i}function O(t){return tn.call(t)}function F(t){return null==t?void 0===t?nn:en:rn&&rn in Object(t)?I(t):O(t)}function R(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function N(t){if(!R(t))return!1;var e=F(t);return e==sn||e==an||e==on||e==cn}function L(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=un}function T(t){return null!=t&&L(t.length)&&!N(t)}function x(){}function D(t){return function(){if(null!==t){var e=t;t=null,e.apply(this,arguments)}}}function A(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function P(t){return null!=t&&"object"==typeof t}function C(t){return P(t)&&F(t)==pn}function U(){return!1}function M(t,e){return e=null==e?kn:e,!!e&&("number"==typeof t||In.test(t))&&t>-1&&t%1==0&&t<e}function B(t){return P(t)&&L(t.length)&&!!Gn[F(t)]}function j(t){return function(e){return t(e)}}function z(t,e){var n=_n(t),r=!n&&gn(t),i=!n&&!r&&bn(t),o=!n&&!r&&!i&&rr(t),s=n||r||i||o,a=s?A(t.length,String):[],c=a.length;for(var u in t)!e&&!or.call(t,u)||s&&("length"==u||i&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||M(u,c))||a.push(u);return a}function q(t){var e=t&&t.constructor,n="function"==typeof e&&e.prototype||sr;return t===n}function V(t,e){return function(n){return t(e(n))}}function W(t){if(!q(t))return ar(t);var e=[];for(var n in Object(t))ur.call(t,n)&&"constructor"!=n&&e.push(n);return e}function H(t){return T(t)?z(t):W(t)}function Z(t){var e=-1,n=t.length;return function(){return++e<n?{value:t[e],key:e}:null}}function Y(t){var e=-1;return function(){var n=t.next();return n.done?null:(e++,{value:n.value,key:e})}}function X(t){var e=H(t),n=-1,r=e.length;return function(){var i=e[++n];return n<r?{value:t[i],key:i}:null}}function K(t){if(T(t))return Z(t);var e=hn(t);return e?Y(e):X(t)}function G(t){return function(){if(null===t)throw new Error("Callback was already called.");var e=t;t=null,e.apply(this,arguments)}}function J(t){return function(e,n,r){function i(t,e){if(c-=1,t)a=!0,r(t);else{if(e===fr||a&&c<=0)return a=!0,r(null);o()}}function o(){for(;c<t&&!a;){var e=s();if(null===e)return a=!0,void(c<=0&&r(null));c+=1,n(e.value,e.key,G(i))}}if(r=D(r||x),t<=0||!e)return r(null);var s=K(e),a=!1,c=0;o()}}function Q(t,e,n,r){J(e)(t,n,r)}function $(t,e){return function(n,r,i){return t(n,e,r,i)}}function tt(t,e,n){function r(t){t?n(t):++o===s&&n(null)}n=D(n||x);var i=0,o=0,s=t.length;for(0===s&&n(null);i<s;i++)e(t[i],i,G(r))}function et(t){return function(e,n,r){return t(pr,e,n,r)}}function nt(t,e,n,r){r=r||x,e=e||[];var i=[],o=0;t(e,function(t,e,r){var s=o++;n(t,function(t,e){i[s]=e,r(t)})},function(t){r(t,i)})}function rt(t){return function(e,n,r,i){return t(J(n),e,r,i)}}function it(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&e(t[n],n,t)!==!1;);return t}function ot(t){return function(e,n,r){for(var i=-1,o=Object(e),s=r(e),a=s.length;a--;){var c=s[t?a:++i];if(n(o[c],c,o)===!1)break}return e}}function st(t){setTimeout(t,0)}function at(t){return b(function(e,n){t(function(){e.apply(null,n)})})}function ct(t,e,n,r){r=D(r||x),Pr(t,function(t,r,i){n(e,t,function(t,n){e=n,i(t)})},function(t){r(t,e)})}function ut(t){return b(function(e,n){e.apply(null,n.concat([b(function(e,n){"object"==typeof console&&(e?console.error&&console.error(e):console[t]&&it(n,function(e){console[t](e)}))})]))})}function ft(t){return function(e,n,r){return t(e,r)}}function ht(t,e,n){pr(t,ft(e),n)}function pt(){Mr||(Mr={},Mr[Dropbox.ApiError.NETWORK_ERROR]=ge.EIO,Mr[Dropbox.ApiError.INVALID_PARAM]=ge.EINVAL,Mr[Dropbox.ApiError.INVALID_TOKEN]=ge.EPERM,Mr[Dropbox.ApiError.OAUTH_ERROR]=ge.EPERM,Mr[Dropbox.ApiError.NOT_FOUND]=ge.ENOENT,Mr[Dropbox.ApiError.INVALID_METHOD]=ge.EINVAL,Mr[Dropbox.ApiError.NOT_ACCEPTABLE]=ge.EINVAL,Mr[Dropbox.ApiError.CONFLICT]=ge.EINVAL,Mr[Dropbox.ApiError.RATE_LIMITED]=ge.EBUSY,Mr[Dropbox.ApiError.SERVER_ERROR]=ge.EBUSY,Mr[Dropbox.ApiError.OVER_QUOTA]=ge.ENOSPC)}function lt(t){return t&&t.stat.isFile}function dt(t){return t&&t.stat.isFolder}function yt(t){return null===t||void 0===t||"object"==typeof t&&"number"==typeof t.byteLength}function gt(t,e){void 0===e&&(e="");for(var n=t.errno,r=t.node,i=[];r&&(i.unshift(r.name),r!==r.parent);)r=r.parent;return new me(n,ve[n],i.length>0?"/"+i.join("/"):e)}function _t(t,e){if(null!==e&&"object"==typeof e){var n=e,r=n.path;r&&(r="/"+ye.relative(t,r),n.message=n.message.replace(n.path,r),n.path=r)}return e}function vt(t,e){return"function"==typeof e?function(n){arguments.length>0&&(arguments[0]=_t(t,n)),e.apply(null,arguments)}:e}function wt(t,e,n){return"Sync"!==t.slice(t.length-4)?function(){return arguments.length>0&&(e&&(arguments[0]=ye.join(this._folder,arguments[0])),n&&(arguments[1]=ye.join(this._folder,arguments[1])),arguments[arguments.length-1]=vt(this._folder,arguments[arguments.length-1])),this._wrapped[t].apply(this._wrapped,arguments)}:function(){try{return e&&(arguments[0]=ye.join(this._folder,arguments[0])),n&&(arguments[1]=ye.join(this._folder,arguments[1])),this._wrapped[t].apply(this._wrapped,arguments)}catch(t){throw _t(this._folder,t)}}}function mt(t){return t.isDirectory}function Et(t,e,n,r){if("undefined"!=typeof navigator.webkitPersistentStorage)switch(t){case _e.PERSISTENT:navigator.webkitPersistentStorage.requestQuota(e,n,r);break;case _e.TEMPORARY:navigator.webkitTemporaryStorage.requestQuota(e,n,r);break;default:r(new TypeError("Invalid storage type: "+t))}else _e.webkitStorageInfo.requestQuota(t,e,n,r)}function St(t){return Array.prototype.slice.call(t||[],0)}function bt(t,e,n){switch(t.name){case"PathExistsError":return me.EEXIST(e);case"QuotaExceededError":return me.FileError(ge.ENOSPC,e);case"NotFoundError":return me.ENOENT(e);case"SecurityError":return me.FileError(ge.EACCES,e);case"InvalidModificationError":return me.FileError(ge.EPERM,e);case"TypeMismatchError":return me.FileError(n?ge.ENOTDIR:ge.EISDIR,e);case"EncodingError":case"InvalidStateError":case"NoModificationAllowedError":default:return me.FileError(ge.EINVAL,e)}}function kt(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0,n="x"===t?e:3&e|8;return n.toString(16)})}function It(t,e){return!t||(e(t),!1)}function Ot(t,e,n){return!t||(e.abort(function(){n(t)}),!1)}function Ft(t,e){switch(void 0===e&&(e=t.toString()),t.name){case"NotFoundError":return new me(ge.ENOENT,e);case"QuotaExceededError":return new me(ge.ENOSPC,e);default:return new me(ge.EIO,e)}}function Rt(t,e,n){return void 0===e&&(e=ge.EIO),void 0===n&&(n=null),function(r){r.preventDefault(),t(new me(e,null!==n?n:void 0))}}function Nt(t,e,n){return e?function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=e[0],i=this._getFs(r);e[0]=i.path;try{return i.fs[t].apply(i.fs,e)}catch(t){throw this.standardizeError(t,i.path,r),t}}:function(){for(var e=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];var i=n[0],o=this._getFs(i);if(n[0]=o.path,"function"==typeof n[n.length-1]){var s=n[n.length-1];n[n.length-1]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];t.length>0&&t[0]instanceof me&&e.standardizeError(t[0],o.path,i),s.apply(null,t)}}return o.fs[t].apply(o.fs,n)}}function Lt(t){return 146|t}function Tt(t){return Se.getFileFlag(t)}function xt(t){return{type:mi.API_ERROR,errorData:jt(t.writeToBuffer())}}function Dt(t){return me.fromBuffer(zt(t.errorData))}function At(t){return{type:mi.ERROR,name:t.name,message:t.message,stack:t.stack}}function Pt(t){var e=_e[t.name];"function"!=typeof e&&(e=Error);var n=new e(t.message);return n.stack=t.stack,n}function Ct(t){return{type:mi.STATS,statsData:jt(t.toBuffer())}}function Ut(t){return ke.fromBuffer(zt(t.statsData))}function Mt(t){return{type:mi.FILEFLAG,flagStr:t.getFlagString()}}function Bt(t){return Se.getFileFlag(t.flagStr)}function jt(t){return d(t)}function zt(t){return v(t)}function qt(t){return{type:mi.BUFFER,data:jt(t)}}function Vt(t){return zt(t.data)}function Wt(t){return t&&"object"==typeof t&&t.hasOwnProperty("browserfsMessage")&&t.browserfsMessage}function Ht(t){return t&&"object"==typeof t&&t.hasOwnProperty("browserfsMessage")&&t.browserfsMessage}function Zt(t,e,n){var i=new XMLHttpRequest;i.open("GET",t,!0);var o=!0;switch(e){case"buffer":i.responseType="arraybuffer";break;case"json":try{i.responseType="json",o="json"===i.responseType}catch(t){o=!1}break;default:return n(new me(ge.EINVAL,"Invalid download type: "+e))}i.onreadystatechange=function(t){if(4===i.readyState){if(200!==i.status)return n(new me(i.status,"XHR error."));switch(e){case"buffer":return n(null,new r(i.response?i.response:0));case"json":return o?n(null,i.response):n(null,JSON.parse(i.responseText))}}},i.send()}function Yt(t,e){var n=new XMLHttpRequest;n.open("GET",t,!1);var i=null,o=null;if(n.overrideMimeType("text/plain; charset=x-user-defined"),n.onreadystatechange=function(t){if(4===n.readyState){if(200!==n.status)return void(o=new me(n.status,"XHR error."));switch(e){case"buffer":var s=n.responseText;i=new r(s.length);for(var a=0;a<s.length;a++)i[a]=s.charCodeAt(a);return;case"json":return void(i=JSON.parse(n.responseText))}}},n.send(),o)throw o;return i}function Xt(t,e){var n=new XMLHttpRequest;switch(n.open("GET",t,!1),e){case"buffer":n.responseType="arraybuffer";break;case"json":break;default:throw new me(ge.EINVAL,"Invalid download type: "+e)}var i,o;if(n.onreadystatechange=function(t){if(4===n.readyState)if(200===n.status)switch(e){case"buffer":i=new r(n.response);break;case"json":i=JSON.parse(n.response)}else o=new me(n.status,"XHR error.")},n.send(),o)throw o;return i}function Kt(t,e,n){var r=new XMLHttpRequest;r.open("HEAD",e,t),r.onreadystatechange=function(t){if(4===r.readyState){if(200!==r.status)return n(new me(r.status,"XHR HEAD error."));try{return n(null,parseInt(r.getResponseHeader("Content-Length")||"-1",10))}catch(t){return n(new me(ge.EIO,"XHR HEAD error: Could not read content-length."))}}},r.send()}function Gt(t){var e=-1;return Kt(!1,t,function(t,n){if(t)throw t;e=n}),e}function Jt(t,e){Kt(!0,t,e)}function Qt(t){return!!t&&t.isFile()}function $t(t){return!!t&&t.isDir()}function te(t,e,n){try{n(null,t.toString(e))}catch(t){n(t)}}function ee(t,e){var n=31&e,r=(e>>5&15)-1,i=(e>>9)+1980,o=31&t,s=t>>5&63,a=t>>11;return new Date(i,r,n,a,s,o)}function ne(t,e,n,r){return 0===r?"":e?t.toString("utf8",n,n+r):Pi.byte2str(t.slice(n,n+r))}function re(t,e,n){return t.toString("ascii",e,e+n).trim()}function ie(t,e,n){if(1===n)return String.fromCharCode(t[e]);for(var r=Math.floor(n/2),i=new Array(r),o=0;o<r;o++){var s=e+(o<<1);i[o]=String.fromCharCode(t[s+1]|t[s]<<8)}return i.join("")}function oe(t,e){var n=parseInt(re(t,e,4),10),r=parseInt(re(t,e+4,2),10),i=parseInt(re(t,e+6,2),10),o=parseInt(re(t,e+8,2),10),s=parseInt(re(t,e+10,2),10),a=parseInt(re(t,e+12,2),10),c=parseInt(re(t,e+14,2),10);return new Date(n,r,i,o,s,a,100*c)}function se(t,e){var n=t[e],r=t[e+1],i=t[e+2],o=t[e+3],s=t[e+4],a=t[e+5];return new Date(n,r-1,i,o,s,a)}function ae(t,e){var n=t.slice(e),r=new ro(n);switch(r.signatureWord()){case 17221:return new io(n);case 20548:return new oo(n);case 21328:return new so(n);case 21332:return new ao(n);case 17746:return new co(n);case 17747:return new uo(n);case 20568:return new ho(n);case 20558:return new po(n);case 21324:return new lo(n);case 20045:return new go(n);case 17228:return new _o(n);case 20556:return new vo(n);case 21061:return new wo(n);case 21574:return new mo(n);case 21318:return new Eo(n);case 21074:return new fo(n);default:return r}}function ce(t,e,n,r){n-=4;for(var i=new Array;e<n;){var o=ae(t,e),s=o.length();if(0===s)return i;if(e+=s,o instanceof ao)break;o instanceof io?i=i.concat(o.getEntries(r)):i.push(o)}return i}function ue(t){t.Buffer=r,t.process=o;var e=t.require?t.require:null;t.require=function(t){var n=he(t);return n?n:e.apply(null,Array.prototype.slice.call(arguments,0))}}function fe(t,e){Oo[t]=e}function he(t){switch(t){case"fs":return Re;case"path":return ye;case"buffer":return de;case"process":return o;case"bfs_utils":return xe;default:return Oo[t]}}function pe(t){return Re.initialize(t)}Object.defineProperty(e,"__esModule",{value:!0});var le,de=n(1),ye=n(14);le="undefined"!=typeof window?window:"undefined"!=typeof self?self:t;var ge,_e=le;!function(t){t[t.EPERM=1]="EPERM",t[t.ENOENT=2]="ENOENT",t[t.EIO=5]="EIO",t[t.EBADF=9]="EBADF",t[t.EACCES=13]="EACCES",t[t.EBUSY=16]="EBUSY",t[t.EEXIST=17]="EEXIST",t[t.ENOTDIR=20]="ENOTDIR",t[t.EISDIR=21]="EISDIR",t[t.EINVAL=22]="EINVAL",t[t.EFBIG=27]="EFBIG",t[t.ENOSPC=28]="ENOSPC",t[t.EROFS=30]="EROFS",t[t.ENOTEMPTY=39]="ENOTEMPTY",t[t.ENOTSUP=95]="ENOTSUP"}(ge||(ge={}));var ve={};ve[ge.EPERM]="Operation not permitted.",ve[ge.ENOENT]="No such file or directory.",ve[ge.EIO]="Input/output error.",ve[ge.EBADF]="Bad file descriptor.",ve[ge.EACCES]="Permission denied.",ve[ge.EBUSY]="Resource busy or locked.",ve[ge.EEXIST]="File exists.",ve[ge.ENOTDIR]="File is not a directory.",ve[ge.EISDIR]="File is a directory.",ve[ge.EINVAL]="Invalid argument.",ve[ge.EFBIG]="File is too big.",ve[ge.ENOSPC]="No space left on disk.",ve[ge.EROFS]="Cannot modify a read-only file system.",ve[ge.ENOTEMPTY]="Directory is not empty.",ve[ge.ENOTSUP]="Operation is not supported.";var we,me=function(t){function e(e,n,r){void 0===n&&(n=ve[e]),t.call(this,n),this.syscall="",this.errno=e,this.code=ge[e],this.path=r,this.stack=(new t).stack,this.message="Error: "+this.code+": "+n+(this.path?", '"+this.path+"'":"")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.fromJSON=function(t){var n=new e(0);return n.errno=t.errno,n.code=t.code,n.path=t.path,n.stack=t.stack,n.message=t.message,n},e.fromBuffer=function(t,n){return void 0===n&&(n=0),e.fromJSON(JSON.parse(t.toString("utf8",n+4,n+4+t.readUInt32LE(n))))},e.FileError=function(t,n){return new e(t,ve[t],n)},e.ENOENT=function(t){return this.FileError(ge.ENOENT,t)},e.EEXIST=function(t){return this.FileError(ge.EEXIST,t)},e.EISDIR=function(t){return this.FileError(ge.EISDIR,t)},e.ENOTDIR=function(t){return this.FileError(ge.ENOTDIR,t)},e.EPERM=function(t){return this.FileError(ge.EPERM,t)},e.ENOTEMPTY=function(t){return this.FileError(ge.ENOTEMPTY,t)},e.prototype.toString=function(){return this.message},e.prototype.toJSON=function(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message}},e.prototype.writeToBuffer=function(t,e){void 0===t&&(t=new r(this.bufferSize())),void 0===e&&(e=0);var n=t.write(JSON.stringify(this.toJSON()),e+4);return t.writeUInt32LE(n,e),t},e.prototype.bufferSize=function(){return 4+r.byteLength(JSON.stringify(this.toJSON()))},e}(Error),Ee=Object.freeze({get ErrorCode(){return ge},ErrorStrings:ve,ApiError:me});!function(t){t[t.NOP=0]="NOP",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.TRUNCATE_FILE=2]="TRUNCATE_FILE",t[t.CREATE_FILE=3]="CREATE_FILE"}(we||(we={}));var Se=function t(e){if(this.flagStr=e,t.validFlagStrs.indexOf(e)<0)throw new me(ge.EINVAL,"Invalid flag: "+e)};Se.getFileFlag=function(t){return Se.flagCache.hasOwnProperty(t)?Se.flagCache[t]:Se.flagCache[t]=new Se(t)},Se.prototype.getFlagString=function(){return this.flagStr},Se.prototype.isReadable=function(){return this.flagStr.indexOf("r")!==-1||this.flagStr.indexOf("+")!==-1},Se.prototype.isWriteable=function(){return this.flagStr.indexOf("w")!==-1||this.flagStr.indexOf("a")!==-1||this.flagStr.indexOf("+")!==-1},Se.prototype.isTruncating=function(){return this.flagStr.indexOf("w")!==-1},Se.prototype.isAppendable=function(){return this.flagStr.indexOf("a")!==-1},Se.prototype.isSynchronous=function(){return this.flagStr.indexOf("s")!==-1},Se.prototype.isExclusive=function(){return this.flagStr.indexOf("x")!==-1},Se.prototype.pathExistsAction=function(){return this.isExclusive()?we.THROW_EXCEPTION:this.isTruncating()?we.TRUNCATE_FILE:we.NOP},Se.prototype.pathNotExistsAction=function(){return(this.isWriteable()||this.isAppendable())&&"r+"!==this.flagStr?we.CREATE_FILE:we.THROW_EXCEPTION},Se.flagCache={},Se.validFlagStrs=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];var be;!function(t){t[t.FILE=32768]="FILE",t[t.DIRECTORY=16384]="DIRECTORY",t[t.SYMLINK=40960]="SYMLINK"}(be||(be={}));var ke=function(t,e,n,r,i,o){if(void 0===r&&(r=new Date),void 0===i&&(i=new Date),void 0===o&&(o=new Date),this.size=e,this.atime=r,this.mtime=i,this.ctime=o,this.dev=0,this.ino=0,this.rdev=0,this.nlink=1,this.blksize=4096,this.uid=0,this.gid=0,this.birthtime=new Date(0),this.fileData=null,n)this.mode=n;else switch(t){case be.FILE:this.mode=420;break;case be.DIRECTORY:default:this.mode=511}this.blocks=Math.ceil(e/512),this.mode<4096&&(this.mode|=t)};ke.fromBuffer=function(t){var e=t.readUInt32LE(0),n=t.readUInt32LE(4),r=t.readDoubleLE(8),i=t.readDoubleLE(16),o=t.readDoubleLE(24);return new ke(61440&n,e,4095&n,new Date(r),new Date(i),new Date(o))},ke.prototype.toBuffer=function(){var t=new r(32);return t.writeUInt32LE(this.size,0),t.writeUInt32LE(this.mode,4),t.writeDoubleLE(this.atime.getTime(),8),t.writeDoubleLE(this.mtime.getTime(),16),t.writeDoubleLE(this.ctime.getTime(),24),t},ke.prototype.clone=function(){return new ke(61440&this.mode,this.size,4095&this.mode,this.atime,this.mtime,this.ctime)},ke.prototype.isFile=function(){return(61440&this.mode)===be.FILE},ke.prototype.isDirectory=function(){return(61440&this.mode)===be.DIRECTORY},ke.prototype.isSymbolicLink=function(){return(61440&this.mode)===be.SYMLINK},ke.prototype.chmod=function(t){this.mode=61440&this.mode|t},ke.prototype.isSocket=function(){return!1},ke.prototype.isBlockDevice=function(){return!1},ke.prototype.isCharacterDevice=function(){return!1},ke.prototype.isFIFO=function(){return!1};var Ie=function(t,e){return t},Oe=function(){this.F_OK=0,this.R_OK=4,this.W_OK=2,this.X_OK=1,this.root=null,this.fdMap={},this.nextFd=100};Oe.prototype.initialize=function(t){if(!t.constructor.isAvailable())throw new me(ge.EINVAL,"Tried to instantiate BrowserFS with an unavailable file system.");return this.root=t},Oe.prototype._toUnixTimestamp=function(t){if("number"==typeof t)return t;if(t instanceof Date)return t.getTime()/1e3;throw new Error("Cannot parse time: "+t)},Oe.prototype.getRootFS=function(){return this.root?this.root:null},Oe.prototype.rename=function(t,e,n){void 0===n&&(n=h);var r=Ie(n,1);try{s(this.root).rename(u(t),u(e),r)}catch(t){r(t)}},Oe.prototype.renameSync=function(t,e){s(this.root).renameSync(u(t),u(e))},Oe.prototype.exists=function(t,e){void 0===e&&(e=h);var n=Ie(e,1);try{return s(this.root).exists(u(t),n)}catch(t){return n(!1)}},Oe.prototype.existsSync=function(t){try{return s(this.root).existsSync(u(t))}catch(t){return!1}},Oe.prototype.stat=function(t,e){void 0===e&&(e=h);var n=Ie(e,2);try{return s(this.root).stat(u(t),!1,n)}catch(t){return n(t)}},Oe.prototype.statSync=function(t){return s(this.root).statSync(u(t),!1)},Oe.prototype.lstat=function(t,e){void 0===e&&(e=h);var n=Ie(e,2);try{return s(this.root).stat(u(t),!0,n)}catch(t){return n(t)}},Oe.prototype.lstatSync=function(t){return s(this.root).statSync(u(t),!0)},Oe.prototype.truncate=function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=h);var r=0;"function"==typeof e?n=e:"number"==typeof e&&(r=e);var i=Ie(n,1);try{if(r<0)throw new me(ge.EINVAL);return s(this.root).truncate(u(t),r,i)}catch(t){return i(t)}},Oe.prototype.truncateSync=function(t,e){if(void 0===e&&(e=0),e<0)throw new me(ge.EINVAL);return s(this.root).truncateSync(u(t),e)},Oe.prototype.unlink=function(t,e){void 0===e&&(e=h);var n=Ie(e,1);try{return s(this.root).unlink(u(t),n)}catch(t){return n(t)}},Oe.prototype.unlinkSync=function(t){return s(this.root).unlinkSync(u(t))},Oe.prototype.open=function(t,e,n,r){var i=this;void 0===r&&(r=h);var o=a(n,420);r="function"==typeof n?n:r;var c=Ie(r,2);try{s(this.root).open(u(t),Se.getFileFlag(e),o,function(t,e){e?c(t,i.getFdForFile(e)):c(t)})}catch(t){c(t)}},Oe.prototype.openSync=function(t,e,n){return void 0===n&&(n=420),this.getFdForFile(s(this.root).openSync(u(t),Se.getFileFlag(e),a(n,420)))},Oe.prototype.readFile=function(t,e,n){void 0===e&&(e={}),void 0===n&&(n=h);var r=f(e,null,"r",null);n="function"==typeof e?e:n;var i=Ie(n,2);try{var o=Se.getFileFlag(r.flag);return o.isReadable()?s(this.root).readFile(u(t),r.encoding,o,i):i(new me(ge.EINVAL,"Flag passed to readFile must allow for reading."))}catch(t){return i(t)}},Oe.prototype.readFileSync=function(t,e){void 0===e&&(e={});var n=f(e,null,"r",null),r=Se.getFileFlag(n.flag);if(!r.isReadable())throw new me(ge.EINVAL,"Flag passed to readFile must allow for reading.");return s(this.root).readFileSync(u(t),n.encoding,r)},Oe.prototype.writeFile=function(t,e,n,r){void 0===n&&(n={}),void 0===r&&(r=h);var i=f(n,"utf8","w",420);r="function"==typeof n?n:r;var o=Ie(r,1);try{var a=Se.getFileFlag(i.flag);return a.isWriteable()?s(this.root).writeFile(u(t),e,i.encoding,a,i.mode,o):o(new me(ge.EINVAL,"Flag passed to writeFile must allow for writing."))}catch(t){return o(t)}},Oe.prototype.writeFileSync=function(t,e,n){var r=f(n,"utf8","w",420),i=Se.getFileFlag(r.flag);if(!i.isWriteable())throw new me(ge.EINVAL,"Flag passed to writeFile must allow for writing.");return s(this.root).writeFileSync(u(t),e,r.encoding,i,r.mode)},Oe.prototype.appendFile=function(t,e,n,r){void 0===r&&(r=h);var i=f(n,"utf8","a",420);r="function"==typeof n?n:r;var o=Ie(r,1);try{var a=Se.getFileFlag(i.flag);if(!a.isAppendable())return o(new me(ge.EINVAL,"Flag passed to appendFile must allow for appending."));s(this.root).appendFile(u(t),e,i.encoding,a,i.mode,o)}catch(t){o(t)}},Oe.prototype.appendFileSync=function(t,e,n){var r=f(n,"utf8","a",420),i=Se.getFileFlag(r.flag);if(!i.isAppendable())throw new me(ge.EINVAL,"Flag passed to appendFile must allow for appending.");return s(this.root).appendFileSync(u(t),e,r.encoding,i,r.mode)},Oe.prototype.fstat=function(t,e){void 0===e&&(e=h);var n=Ie(e,2);try{var r=this.fd2file(t);r.stat(n)}catch(t){n(t)}},Oe.prototype.fstatSync=function(t){return this.fd2file(t).statSync()},Oe.prototype.close=function(t,e){var n=this;void 0===e&&(e=h);var r=Ie(e,1);try{this.fd2file(t).close(function(e){e||n.closeFd(t),r(e)})}catch(t){r(t)}},Oe.prototype.closeSync=function(t){this.fd2file(t).closeSync(),this.closeFd(t)},Oe.prototype.ftruncate=function(t,e,n){void 0===n&&(n=h);var r="number"==typeof e?e:0;n="function"==typeof e?e:n;var i=Ie(n,1);try{var o=this.fd2file(t);if(r<0)throw new me(ge.EINVAL);o.truncate(r,i)}catch(t){i(t)}},Oe.prototype.ftruncateSync=function(t,e){void 0===e&&(e=0);var n=this.fd2file(t);if(e<0)throw new me(ge.EINVAL);n.truncateSync(e)},Oe.prototype.fsync=function(t,e){void 0===e&&(e=h);var n=Ie(e,1);try{this.fd2file(t).sync(n)}catch(t){n(t)}},Oe.prototype.fsyncSync=function(t){this.fd2file(t).syncSync()},Oe.prototype.fdatasync=function(t,e){void 0===e&&(e=h);var n=Ie(e,1);try{this.fd2file(t).datasync(n)}catch(t){n(t)}},Oe.prototype.fdatasyncSync=function(t){this.fd2file(t).datasyncSync()},Oe.prototype.write=function(t,e,n,i,o,s){void 0===s&&(s=h);var a,c,u,f=null;if("string"==typeof e){var p="utf8";switch(typeof n){case"function":s=n;break;case"number":f=n,p="string"==typeof i?i:"utf8",s="function"==typeof o?o:s;break;default:return(s="function"==typeof i?i:"function"==typeof o?o:s)(new me(ge.EINVAL,"Invalid arguments."))}a=new r(e,p),c=0,u=a.length}else a=e,c=n,u=i,f="number"==typeof o?o:null,s="function"==typeof o?o:s;var l=Ie(s,3);try{var d=this.fd2file(t);void 0!==f&&null!==f||(f=d.getPos()),d.write(a,c,u,f,l)}catch(t){l(t)}},Oe.prototype.writeSync=function(t,e,n,i,o){var s,a,c,u=0;if("string"==typeof e){c="number"==typeof n?n:null;var f="string"==typeof i?i:"utf8";u=0,s=new r(e,f),a=s.length}else s=e,u=n,a=i,c="number"==typeof o?o:null;var h=this.fd2file(t);return void 0!==c&&null!==c||(c=h.getPos()),h.writeSync(s,u,a,c)},Oe.prototype.read=function(t,e,n,i,o,s){void 0===s&&(s=h);var a,c,u,f,p;if("number"==typeof e){u=e,a=n;var l=i;s="function"==typeof o?o:s,c=0,f=new r(u),p=Ie(function(t,e,n){return t?s(t):void s(t,n.toString(l),e)},3)}else f=e,c=n,u=i,a=o,p=Ie(s,3);try{var d=this.fd2file(t);void 0!==a&&null!==a||(a=d.getPos()),d.read(f,c,u,a,p)}catch(t){p(t)}},Oe.prototype.readSync=function(t,e,n,i,o){var s,a,c,u,f=!1,h="utf8";"number"==typeof e?(c=e,u=n,h=i,a=0,s=new r(c),f=!0):(s=e,a=n,c=i,u=o);var p=this.fd2file(t);void 0!==u&&null!==u||(u=p.getPos());var l=p.readSync(s,a,c,u);return f?[s.toString(h),l]:l},Oe.prototype.fchown=function(t,e,n,r){void 0===r&&(r=h);var i=Ie(r,1);try{this.fd2file(t).chown(e,n,i)}catch(t){i(t)}},Oe.prototype.fchownSync=function(t,e,n){this.fd2file(t).chownSync(e,n)},Oe.prototype.fchmod=function(t,e,n){var r=Ie(n,1);try{var i="string"==typeof e?parseInt(e,8):e;this.fd2file(t).chmod(i,r)}catch(t){r(t)}},Oe.prototype.fchmodSync=function(t,e){var n="string"==typeof e?parseInt(e,8):e;this.fd2file(t).chmodSync(n)},Oe.prototype.futimes=function(t,e,n,r){void 0===r&&(r=h);var i=Ie(r,1);try{var o=this.fd2file(t);"number"==typeof e&&(e=new Date(1e3*e)),"number"==typeof n&&(n=new Date(1e3*n)),o.utimes(e,n,i)}catch(t){i(t)}},Oe.prototype.futimesSync=function(t,e,n){this.fd2file(t).utimesSync(c(e),c(n))},Oe.prototype.rmdir=function(t,e){void 0===e&&(e=h);var n=Ie(e,1);try{t=u(t),s(this.root).rmdir(t,n)}catch(t){n(t)}},Oe.prototype.rmdirSync=function(t){return t=u(t),s(this.root).rmdirSync(t)},Oe.prototype.mkdir=function(t,e,n){void 0===n&&(n=h),"function"==typeof e&&(n=e,e=511);var r=Ie(n,1);try{t=u(t),s(this.root).mkdir(t,e,r)}catch(t){r(t)}},Oe.prototype.mkdirSync=function(t,e){s(this.root).mkdirSync(u(t),a(e,511))},Oe.prototype.readdir=function(t,e){void 0===e&&(e=h);var n=Ie(e,2);try{t=u(t),s(this.root).readdir(t,n)}catch(t){n(t)}},Oe.prototype.readdirSync=function(t){return t=u(t),s(this.root).readdirSync(t)},Oe.prototype.link=function(t,e,n){void 0===n&&(n=h);var r=Ie(n,1);try{t=u(t),e=u(e),s(this.root).link(t,e,r)}catch(t){r(t)}},Oe.prototype.linkSync=function(t,e){return t=u(t),e=u(e),s(this.root).linkSync(t,e)},Oe.prototype.symlink=function(t,e,n,r){void 0===r&&(r=h);var i="string"==typeof n?n:"file";r="function"==typeof n?n:r;var o=Ie(r,1);try{if("file"!==i&&"dir"!==i)return o(new me(ge.EINVAL,"Invalid type: "+i));t=u(t),e=u(e),s(this.root).symlink(t,e,i,o)}catch(t){o(t)}},Oe.prototype.symlinkSync=function(t,e,n){if(n){if("file"!==n&&"dir"!==n)throw new me(ge.EINVAL,"Invalid type: "+n)}else n="file";return t=u(t),e=u(e),s(this.root).symlinkSync(t,e,n)},Oe.prototype.readlink=function(t,e){void 0===e&&(e=h);var n=Ie(e,2);try{t=u(t),s(this.root).readlink(t,n)}catch(t){n(t)}},Oe.prototype.readlinkSync=function(t){return t=u(t),s(this.root).readlinkSync(t)},Oe.prototype.chown=function(t,e,n,r){void 0===r&&(r=h);var i=Ie(r,1);try{t=u(t),s(this.root).chown(t,!1,e,n,i)}catch(t){i(t)}},Oe.prototype.chownSync=function(t,e,n){t=u(t),s(this.root).chownSync(t,!1,e,n)},Oe.prototype.lchown=function(t,e,n,r){void 0===r&&(r=h);var i=Ie(r,1);try{t=u(t),s(this.root).chown(t,!0,e,n,i)}catch(t){i(t)}},Oe.prototype.lchownSync=function(t,e,n){t=u(t),s(this.root).chownSync(t,!0,e,n)},Oe.prototype.chmod=function(t,e,n){void 0===n&&(n=h);var r=Ie(n,1);try{var i=a(e,-1);if(i<0)throw new me(ge.EINVAL,"Invalid mode.");s(this.root).chmod(u(t),!1,i,r)}catch(t){r(t)}},Oe.prototype.chmodSync=function(t,e){var n=a(e,-1);if(n<0)throw new me(ge.EINVAL,"Invalid mode.");t=u(t),s(this.root).chmodSync(t,!1,n)},Oe.prototype.lchmod=function(t,e,n){void 0===n&&(n=h);var r=Ie(n,1);try{var i=a(e,-1);if(i<0)throw new me(ge.EINVAL,"Invalid mode.");s(this.root).chmod(u(t),!0,i,r)}catch(t){r(t)}},Oe.prototype.lchmodSync=function(t,e){var n=a(e,-1);if(n<1)throw new me(ge.EINVAL,"Invalid mode.");s(this.root).chmodSync(u(t),!0,n)},Oe.prototype.utimes=function(t,e,n,r){void 0===r&&(r=h);var i=Ie(r,1);try{s(this.root).utimes(u(t),c(e),c(n),i)}catch(t){i(t)}},Oe.prototype.utimesSync=function(t,e,n){s(this.root).utimesSync(u(t),c(e),c(n))},Oe.prototype.realpath=function(t,e,n){void 0===n&&(n=h);var r="object"==typeof e?e:{};n="function"==typeof e?e:h;var i=Ie(n,2);try{t=u(t),s(this.root).realpath(t,r,i)}catch(t){i(t)}},Oe.prototype.realpathSync=function(t,e){return void 0===e&&(e={}),t=u(t),s(this.root).realpathSync(t,e)},Oe.prototype.watchFile=function(t,e,n){throw void 0===n&&(n=h),new me(ge.ENOTSUP)},Oe.prototype.unwatchFile=function(t,e){throw void 0===e&&(e=h),new me(ge.ENOTSUP)},Oe.prototype.watch=function(t,e,n){throw void 0===n&&(n=h),new me(ge.ENOTSUP)},Oe.prototype.access=function(t,e,n){throw void 0===n&&(n=h),new me(ge.ENOTSUP)},Oe.prototype.accessSync=function(t,e){throw new me(ge.ENOTSUP)},Oe.prototype.createReadStream=function(t,e){throw new me(ge.ENOTSUP)},Oe.prototype.createWriteStream=function(t,e){throw new me(ge.ENOTSUP)},Oe.prototype.wrapCallbacks=function(t){Ie=t},Oe.prototype.getFdForFile=function(t){var e=this.nextFd++;return this.fdMap[e]=t,e},Oe.prototype.fd2file=function(t){var e=this.fdMap[t];if(e)return e;throw new me(ge.EBADF,"Invalid file descriptor.")},Oe.prototype.closeFd=function(t){delete this.fdMap[t]},Oe.Stats=ke;var Fe=new Oe,Re={},Ne=Oe.prototype;Object.keys(Ne).forEach(function(t){"function"==typeof Fe[t]?Re[t]=function(){return Fe[t].apply(Fe,arguments);}:Re[t]=Fe[t]}),Re.changeFSModule=function(t){Fe=t},Re.getFSModule=function(){return Fe},Re.FS=Oe;var Le="undefined"!=typeof navigator&&!(!/(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase())&&navigator.userAgent.indexOf("Trident")===-1),Te="undefined"==typeof window,xe=Object.freeze({isIE:Le,isWebWorker:Te,fail:p,mkdirpSync:l,buffer2ArrayBuffer:d,buffer2Uint8array:y,arrayish2Buffer:g,uint8Array2Buffer:_,arrayBuffer2Buffer:v,copyingSlice:w}),De=function(t){this.fs=t,this.nodefs=t.getNodeFS(),this.FS=t.getFS(),this.PATH=t.getPATH(),this.ERRNO_CODES=t.getERRNO_CODES()};De.prototype.open=function(t){var e=this.fs.realPath(t.node),n=this.FS;try{n.isFile(t.node.mode)&&(t.nfd=this.nodefs.openSync(e,this.fs.flagsToPermissionString(t.flags)))}catch(t){if(!t.code)throw t;throw new n.ErrnoError(this.ERRNO_CODES[t.code])}},De.prototype.close=function(t){var e=this.FS;try{e.isFile(t.node.mode)&&t.nfd&&this.nodefs.closeSync(t.nfd)}catch(t){if(!t.code)throw t;throw new e.ErrnoError(this.ERRNO_CODES[t.code])}},De.prototype.read=function(t,e,n,r,i){try{return this.nodefs.readSync(t.nfd,_(e),n,r,i)}catch(t){throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},De.prototype.write=function(t,e,n,r,i){try{return this.nodefs.writeSync(t.nfd,_(e),n,r,i)}catch(t){throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},De.prototype.llseek=function(t,e,n){var r=e;if(1===n)r+=t.position;else if(2===n&&this.FS.isFile(t.node.mode))try{var i=this.nodefs.fstatSync(t.nfd);r+=i.size}catch(t){throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}if(r<0)throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL);return t.position=r,r};var Ae=function(t){this.fs=t,this.nodefs=t.getNodeFS(),this.FS=t.getFS(),this.PATH=t.getPATH(),this.ERRNO_CODES=t.getERRNO_CODES()};Ae.prototype.getattr=function(t){var e,n=this.fs.realPath(t);try{e=this.nodefs.lstatSync(n)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}return{dev:e.dev,ino:e.ino,mode:e.mode,nlink:e.nlink,uid:e.uid,gid:e.gid,rdev:e.rdev,size:e.size,atime:e.atime,mtime:e.mtime,ctime:e.ctime,blksize:e.blksize,blocks:e.blocks}},Ae.prototype.setattr=function(t,e){var n=this.fs.realPath(t);try{if(void 0!==e.mode&&(this.nodefs.chmodSync(n,e.mode),t.mode=e.mode),void 0!==e.timestamp){var r=new Date(e.timestamp);this.nodefs.utimesSync(n,r,r)}}catch(t){if(!t.code)throw t;if("ENOTSUP"!==t.code)throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}if(void 0!==e.size)try{this.nodefs.truncateSync(n,e.size)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},Ae.prototype.lookup=function(t,e){var n=this.PATH.join2(this.fs.realPath(t),e),r=this.fs.getMode(n);return this.fs.createNode(t,e,r)},Ae.prototype.mknod=function(t,e,n,r){var i=this.fs.createNode(t,e,n,r),o=this.fs.realPath(i);try{this.FS.isDir(i.mode)?this.nodefs.mkdirSync(o,i.mode):this.nodefs.writeFileSync(o,"",{mode:i.mode})}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}return i},Ae.prototype.rename=function(t,e,n){var r=this.fs.realPath(t),i=this.PATH.join2(this.fs.realPath(e),n);try{this.nodefs.renameSync(r,i),t.name=n,t.parent=e}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},Ae.prototype.unlink=function(t,e){var n=this.PATH.join2(this.fs.realPath(t),e);try{this.nodefs.unlinkSync(n)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},Ae.prototype.rmdir=function(t,e){var n=this.PATH.join2(this.fs.realPath(t),e);try{this.nodefs.rmdirSync(n)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},Ae.prototype.readdir=function(t){var e=this.fs.realPath(t);try{var n=this.nodefs.readdirSync(e);return n.push(".",".."),n}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},Ae.prototype.symlink=function(t,e,n){var r=this.PATH.join2(this.fs.realPath(t),e);try{this.nodefs.symlinkSync(n,r)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}},Ae.prototype.readlink=function(t){var e=this.fs.realPath(t);try{return this.nodefs.readlinkSync(e)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}};var Pe=function(t,e,n,r){void 0===t&&(t=self.FS),void 0===e&&(e=self.PATH),void 0===n&&(n=self.ERRNO_CODES),void 0===r&&(r=Re),this.flagsToPermissionStringMap={0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},this.nodefs=r,this.FS=t,this.PATH=e,this.ERRNO_CODES=n,this.node_ops=new Ae(this),this.stream_ops=new De(this)};Pe.prototype.mount=function(t){return this.createNode(null,"/",this.getMode(t.opts.root),0)},Pe.prototype.createNode=function(t,e,n,r){var i=this.FS;if(!i.isDir(n)&&!i.isFile(n)&&!i.isLink(n))throw new i.ErrnoError(this.ERRNO_CODES.EINVAL);var o=i.createNode(t,e,n);return o.node_ops=this.node_ops,o.stream_ops=this.stream_ops,o},Pe.prototype.getMode=function(t){var e;try{e=this.nodefs.lstatSync(t)}catch(t){if(!t.code)throw t;throw new this.FS.ErrnoError(this.ERRNO_CODES[t.code])}return e.mode},Pe.prototype.realPath=function(t){for(var e=[];t.parent!==t;)e.push(t.name),t=t.parent;return e.push(t.mount.opts.root),e.reverse(),this.PATH.join.apply(null,e)},Pe.prototype.flagsToPermissionString=function(t){var e="string"==typeof t?parseInt(t,10):t;return e&=8191,e in this.flagsToPermissionStringMap?this.flagsToPermissionStringMap[e]:t},Pe.prototype.getNodeFS=function(){return this.nodefs},Pe.prototype.getFS=function(){return this.FS},Pe.prototype.getPATH=function(){return this.PATH},Pe.prototype.getERRNO_CODES=function(){return this.ERRNO_CODES};var Ce=function(){};Ce.prototype.supportsLinks=function(){return!1},Ce.prototype.diskSpace=function(t,e){e(0,0)},Ce.prototype.openFile=function(t,e,n){throw new me(ge.ENOTSUP)},Ce.prototype.createFile=function(t,e,n,r){throw new me(ge.ENOTSUP)},Ce.prototype.open=function(t,e,n,r){var i=this,o=function(o,s){if(o)switch(e.pathNotExistsAction()){case we.CREATE_FILE:return i.stat(ye.dirname(t),!1,function(o,s){o?r(o):s&&!s.isDirectory()?r(me.ENOTDIR(ye.dirname(t))):i.createFile(t,e,n,r)});case we.THROW_EXCEPTION:return r(me.ENOENT(t));default:return r(new me(ge.EINVAL,"Invalid FileFlag object."))}else{if(s&&s.isDirectory())return r(me.EISDIR(t));switch(e.pathExistsAction()){case we.THROW_EXCEPTION:return r(me.EEXIST(t));case we.TRUNCATE_FILE:return i.openFile(t,e,function(t,e){t?r(t):e?e.truncate(0,function(){e.sync(function(){r(null,e)})}):p()});case we.NOP:return i.openFile(t,e,r);default:return r(new me(ge.EINVAL,"Invalid FileFlag object."))}}};this.stat(t,!1,o)},Ce.prototype.rename=function(t,e,n){n(new me(ge.ENOTSUP))},Ce.prototype.renameSync=function(t,e){throw new me(ge.ENOTSUP)},Ce.prototype.stat=function(t,e,n){n(new me(ge.ENOTSUP))},Ce.prototype.statSync=function(t,e){throw new me(ge.ENOTSUP)},Ce.prototype.openFileSync=function(t,e,n){throw new me(ge.ENOTSUP)},Ce.prototype.createFileSync=function(t,e,n){throw new me(ge.ENOTSUP)},Ce.prototype.openSync=function(t,e,n){var r;try{r=this.statSync(t,!1)}catch(r){switch(e.pathNotExistsAction()){case we.CREATE_FILE:var i=this.statSync(ye.dirname(t),!1);if(!i.isDirectory())throw me.ENOTDIR(ye.dirname(t));return this.createFileSync(t,e,n);case we.THROW_EXCEPTION:throw me.ENOENT(t);default:throw new me(ge.EINVAL,"Invalid FileFlag object.")}}if(r.isDirectory())throw me.EISDIR(t);switch(e.pathExistsAction()){case we.THROW_EXCEPTION:throw me.EEXIST(t);case we.TRUNCATE_FILE:return this.unlinkSync(t),this.createFileSync(t,e,r.mode);case we.NOP:return this.openFileSync(t,e,n);default:throw new me(ge.EINVAL,"Invalid FileFlag object.")}},Ce.prototype.unlink=function(t,e){e(new me(ge.ENOTSUP))},Ce.prototype.unlinkSync=function(t){throw new me(ge.ENOTSUP)},Ce.prototype.rmdir=function(t,e){e(new me(ge.ENOTSUP))},Ce.prototype.rmdirSync=function(t){throw new me(ge.ENOTSUP)},Ce.prototype.mkdir=function(t,e,n){n(new me(ge.ENOTSUP))},Ce.prototype.mkdirSync=function(t,e){throw new me(ge.ENOTSUP)},Ce.prototype.readdir=function(t,e){e(new me(ge.ENOTSUP))},Ce.prototype.readdirSync=function(t){throw new me(ge.ENOTSUP)},Ce.prototype.exists=function(t,e){this.stat(t,null,function(t){e(!t)})},Ce.prototype.existsSync=function(t){try{return this.statSync(t,!0),!0}catch(t){return!1}},Ce.prototype.realpath=function(t,e,n){if(this.supportsLinks())for(var r=t.split(ye.sep),i=0;i<r.length;i++){var o=r.slice(0,i+1);r[i]=ye.join.apply(null,o)}else this.exists(t,function(e){e?n(null,t):n(me.ENOENT(t))})},Ce.prototype.realpathSync=function(t,e){if(this.supportsLinks()){for(var n=t.split(ye.sep),r=0;r<n.length;r++){var i=n.slice(0,r+1);n[r]=ye.join.apply(ye,i)}return n.join(ye.sep)}if(this.existsSync(t))return t;throw me.ENOENT(t)},Ce.prototype.truncate=function(t,e,n){this.open(t,Se.getFileFlag("r+"),420,function(t,r){return t?n(t):void r.truncate(e,function(t){r.close(function(e){n(t||e)})})})},Ce.prototype.truncateSync=function(t,e){var n=this.openSync(t,Se.getFileFlag("r+"),420);try{n.truncateSync(e)}catch(t){throw t}finally{n.closeSync()}},Ce.prototype.readFile=function(t,e,n,i){var o=i;this.open(t,n,420,function(t,n){return t?i(t):(i=function(t,e){n.close(function(n){return t||(t=n),o(t,e)})},void n.stat(function(t,o){if(t)return i(t);var s=new r(o.size);n.read(s,0,o.size,0,function(t){if(t)return i(t);if(null===e)return i(t,s);try{i(null,s.toString(e))}catch(t){i(t)}})}))})},Ce.prototype.readFileSync=function(t,e,n){var i=this.openSync(t,n,420);try{var o=i.statSync(),s=new r(o.size);return i.readSync(s,0,o.size,0),i.closeSync(),null===e?s:s.toString(e)}finally{i.closeSync()}},Ce.prototype.writeFile=function(t,e,n,i,o,s){var a=s;this.open(t,i,420,function(t,i){if(t)return s(t);s=function(t){i.close(function(e){a(t?t:e)})};try{"string"==typeof e&&(e=new r(e,n))}catch(t){return s(t)}i.write(e,0,e.length,0,s)})},Ce.prototype.writeFileSync=function(t,e,n,i,o){var s=this.openSync(t,i,o);try{"string"==typeof e&&(e=new r(e,n)),s.writeSync(e,0,e.length,0)}finally{s.closeSync()}},Ce.prototype.appendFile=function(t,e,n,i,o,s){var a=s;this.open(t,i,o,function(t,i){return t?s(t):(s=function(t){i.close(function(e){a(t?t:e)})},"string"==typeof e&&(e=new r(e,n)),void i.write(e,0,e.length,null,s))})},Ce.prototype.appendFileSync=function(t,e,n,i,o){var s=this.openSync(t,i,o);try{"string"==typeof e&&(e=new r(e,n)),s.writeSync(e,0,e.length,null)}finally{s.closeSync()}},Ce.prototype.chmod=function(t,e,n,r){r(new me(ge.ENOTSUP))},Ce.prototype.chmodSync=function(t,e,n){throw new me(ge.ENOTSUP)},Ce.prototype.chown=function(t,e,n,r,i){i(new me(ge.ENOTSUP))},Ce.prototype.chownSync=function(t,e,n,r){throw new me(ge.ENOTSUP)},Ce.prototype.utimes=function(t,e,n,r){r(new me(ge.ENOTSUP))},Ce.prototype.utimesSync=function(t,e,n){throw new me(ge.ENOTSUP)},Ce.prototype.link=function(t,e,n){n(new me(ge.ENOTSUP))},Ce.prototype.linkSync=function(t,e){throw new me(ge.ENOTSUP)},Ce.prototype.symlink=function(t,e,n,r){r(new me(ge.ENOTSUP))},Ce.prototype.symlinkSync=function(t,e,n){throw new me(ge.ENOTSUP)},Ce.prototype.readlink=function(t,e){e(new me(ge.ENOTSUP))},Ce.prototype.readlinkSync=function(t){throw new me(ge.ENOTSUP)};var Ue=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.supportsSynch=function(){return!0},e.prototype.rename=function(t,e,n){try{this.renameSync(t,e),n()}catch(t){n(t)}},e.prototype.stat=function(t,e,n){try{n(null,this.statSync(t,e))}catch(t){n(t)}},e.prototype.open=function(t,e,n,r){try{r(null,this.openSync(t,e,n))}catch(t){r(t)}},e.prototype.unlink=function(t,e){try{this.unlinkSync(t),e()}catch(t){e(t)}},e.prototype.rmdir=function(t,e){try{this.rmdirSync(t),e()}catch(t){e(t)}},e.prototype.mkdir=function(t,e,n){try{this.mkdirSync(t,e),n()}catch(t){n(t)}},e.prototype.readdir=function(t,e){try{e(null,this.readdirSync(t))}catch(t){e(t)}},e.prototype.chmod=function(t,e,n,r){try{this.chmodSync(t,e,n),r()}catch(t){r(t)}},e.prototype.chown=function(t,e,n,r,i){try{this.chownSync(t,e,n,r),i()}catch(t){i(t)}},e.prototype.utimes=function(t,e,n,r){try{this.utimesSync(t,e,n),r()}catch(t){r(t)}},e.prototype.link=function(t,e,n){try{this.linkSync(t,e),n()}catch(t){n(t)}},e.prototype.symlink=function(t,e,n,r){try{this.symlinkSync(t,e,n),r()}catch(t){r(t)}},e.prototype.readlink=function(t,e){try{e(null,this.readlinkSync(t))}catch(t){e(t)}},e}(Ce),Me=function(){};Me.prototype.sync=function(t){t(new me(ge.ENOTSUP))},Me.prototype.syncSync=function(){throw new me(ge.ENOTSUP)},Me.prototype.datasync=function(t){this.sync(t)},Me.prototype.datasyncSync=function(){return this.syncSync()},Me.prototype.chown=function(t,e,n){n(new me(ge.ENOTSUP))},Me.prototype.chownSync=function(t,e){throw new me(ge.ENOTSUP)},Me.prototype.chmod=function(t,e){e(new me(ge.ENOTSUP))},Me.prototype.chmodSync=function(t){throw new me(ge.ENOTSUP)},Me.prototype.utimes=function(t,e,n){n(new me(ge.ENOTSUP))},Me.prototype.utimesSync=function(t,e){throw new me(ge.ENOTSUP)};var Be=function(t){function e(e,n,i,o,s){if(t.call(this),this._pos=0,this._dirty=!1,this._fs=e,this._path=n,this._flag=i,this._stat=o,s?this._buffer=s:this._buffer=new r(0),this._stat.size!==this._buffer.length&&this._flag.isReadable())throw new Error("Invalid buffer: Buffer is "+this._buffer.length+" long, yet Stats object specifies that file is "+this._stat.size+" long.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getBuffer=function(){return this._buffer},e.prototype.getStats=function(){return this._stat},e.prototype.getFlag=function(){return this._flag},e.prototype.getPath=function(){return this._path},e.prototype.getPos=function(){return this._flag.isAppendable()?this._stat.size:this._pos},e.prototype.advancePos=function(t){return this._pos+=t},e.prototype.setPos=function(t){return this._pos=t},e.prototype.sync=function(t){try{this.syncSync(),t()}catch(e){t(e)}},e.prototype.syncSync=function(){throw new me(ge.ENOTSUP)},e.prototype.close=function(t){try{this.closeSync(),t()}catch(e){t(e)}},e.prototype.closeSync=function(){throw new me(ge.ENOTSUP)},e.prototype.stat=function(t){try{t(null,this._stat.clone())}catch(e){t(e)}},e.prototype.statSync=function(){return this._stat.clone()},e.prototype.truncate=function(t,e){try{this.truncateSync(t),this._flag.isSynchronous()&&!Re.getRootFS().supportsSynch()&&this.sync(e),e()}catch(t){return e(t)}},e.prototype.truncateSync=function(t){if(this._dirty=!0,!this._flag.isWriteable())throw new me(ge.EPERM,"File not opened with a writeable mode.");if(this._stat.mtime=new Date,t>this._buffer.length){var e=new r(t-this._buffer.length);return e.fill(0),this.writeSync(e,0,e.length,this._buffer.length),void(this._flag.isSynchronous()&&Re.getRootFS().supportsSynch()&&this.syncSync())}this._stat.size=t;var n=new r(t);this._buffer.copy(n,0,0,t),this._buffer=n,this._flag.isSynchronous()&&Re.getRootFS().supportsSynch()&&this.syncSync()},e.prototype.write=function(t,e,n,r,i){try{i(null,this.writeSync(t,e,n,r),t)}catch(t){i(t)}},e.prototype.writeSync=function(t,e,n,i){if(this._dirty=!0,void 0!==i&&null!==i||(i=this.getPos()),!this._flag.isWriteable())throw new me(ge.EPERM,"File not opened with a writeable mode.");var o=i+n;if(o>this._stat.size&&(this._stat.size=o,o>this._buffer.length)){var s=new r(o);this._buffer.copy(s),this._buffer=s}var a=t.copy(this._buffer,i,e,e+n);return this._stat.mtime=new Date,this._flag.isSynchronous()?(this.syncSync(),a):(this.setPos(i+a),a)},e.prototype.read=function(t,e,n,r,i){try{i(null,this.readSync(t,e,n,r),t)}catch(t){i(t)}},e.prototype.readSync=function(t,e,n,r){if(!this._flag.isReadable())throw new me(ge.EPERM,"File not opened with a readable mode.");void 0!==r&&null!==r||(r=this.getPos());var i=r+n;i>this._stat.size&&(n=this._stat.size-r);var o=this._buffer.copy(t,e,r,r+n);return this._stat.atime=new Date,this._pos=r+n,o},e.prototype.chmod=function(t,e){try{this.chmodSync(t),e()}catch(t){e(t)}},e.prototype.chmodSync=function(t){if(!this._fs.supportsProps())throw new me(ge.ENOTSUP);this._dirty=!0,this._stat.chmod(t),this.syncSync()},e.prototype.isDirty=function(){return this._dirty},e.prototype.resetDirty=function(){this._dirty=!1},e}(Me),je=function(t){function e(e,n,r,i,o){t.call(this,e,n,r,i,o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.sync=function(t){t()},e.prototype.syncSync=function(){},e.prototype.close=function(t){t()},e.prototype.closeSync=function(){},e}(Be),ze=function(t){function e(e,n,r,i,o){t.call(this,e,n,r,i,o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.syncSync=function(){this.isDirty()&&(this._fs._syncSync(this),this.resetDirty())},e.prototype.closeSync=function(){this.syncSync()},e}(Be),qe=function(t){function e(e,n){if(t.call(this),this._queue=[],this._queueRunning=!1,this._isInitialized=!1,this._initializeCallbacks=[],this._sync=e,this._async=n,!e.supportsSynch())throw new Error("The first argument to AsyncMirror needs to be a synchronous file system.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.getName=function(){return"AsyncMirror"},e.prototype._syncSync=function(t){this._sync.writeFileSync(t.getPath(),t.getBuffer(),null,Se.getFileFlag("w"),t.getStats().mode),this.enqueueOp({apiMethod:"writeFile",arguments:[t.getPath(),t.getBuffer(),null,t.getFlag(),t.getStats().mode]})},e.prototype.initialize=function(t){var e=this,n=this._initializeCallbacks,r=function(t){e._isInitialized=!t,e._initializeCallbacks=[],n.forEach(function(e){return e(t)})};if(this._isInitialized)t();else if(1===n.push(t)){var i=function(t,n,r){"/"!==t&&e._sync.mkdirSync(t,n),e._async.readdir(t,function(e,n){function i(e){e?r(e):o<n.length?(s(ye.join(t,n[o]),i),o++):r()}var o=0;e?r(e):i()})},o=function(t,n,r){e._async.readFile(t,null,Se.getFileFlag("r"),function(i,o){if(i)r(i);else try{e._sync.writeFileSync(t,o,null,Se.getFileFlag("w"),n)}catch(t){i=t}finally{r(i)}})},s=function(t,n){e._async.stat(t,!1,function(e,r){e?n(e):r.isDirectory()?i(t,r.mode,n):o(t,r.mode,n)})};i("/",0,r)}},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsSynch=function(){return!0},e.prototype.supportsLinks=function(){return!1},e.prototype.supportsProps=function(){return this._sync.supportsProps()&&this._async.supportsProps()},e.prototype.renameSync=function(t,e){this.checkInitialized(),this._sync.renameSync(t,e),this.enqueueOp({apiMethod:"rename",arguments:[t,e]})},e.prototype.statSync=function(t,e){return this.checkInitialized(),this._sync.statSync(t,e)},e.prototype.openSync=function(t,e,n){this.checkInitialized();var r=this._sync.openSync(t,e,n);return r.closeSync(),new ze(this,t,e,this._sync.statSync(t,!1),this._sync.readFileSync(t,null,Se.getFileFlag("r")))},e.prototype.unlinkSync=function(t){this.checkInitialized(),this._sync.unlinkSync(t),this.enqueueOp({apiMethod:"unlink",arguments:[t]})},e.prototype.rmdirSync=function(t){this.checkInitialized(),this._sync.rmdirSync(t),this.enqueueOp({apiMethod:"rmdir",arguments:[t]})},e.prototype.mkdirSync=function(t,e){this.checkInitialized(),this._sync.mkdirSync(t,e),this.enqueueOp({apiMethod:"mkdir",arguments:[t,e]})},e.prototype.readdirSync=function(t){return this.checkInitialized(),this._sync.readdirSync(t)},e.prototype.existsSync=function(t){return this.checkInitialized(),this._sync.existsSync(t)},e.prototype.chmodSync=function(t,e,n){this.checkInitialized(),this._sync.chmodSync(t,e,n),this.enqueueOp({apiMethod:"chmod",arguments:[t,e,n]})},e.prototype.chownSync=function(t,e,n,r){this.checkInitialized(),this._sync.chownSync(t,e,n,r),this.enqueueOp({apiMethod:"chown",arguments:[t,e,n,r]})},e.prototype.utimesSync=function(t,e,n){this.checkInitialized(),this._sync.utimesSync(t,e,n),this.enqueueOp({apiMethod:"utimes",arguments:[t,e,n]})},e.prototype.checkInitialized=function(){if(!this._isInitialized)throw new me(ge.EPERM,"AsyncMirrorFS is not initialized. Please initialize AsyncMirrorFS using its initialize() method before using it.")},e.prototype.enqueueOp=function(t){var e=this;if(this._queue.push(t),!this._queueRunning){this._queueRunning=!0;var n=function(t){if(t&&console.error("WARNING: File system has desynchronized. Received following error: "+t+"\n$"),e._queue.length>0){var r=e._queue.shift(),i=r.arguments;i.push(n),e._async[r.apiMethod].apply(e._async,i)}else e._queueRunning=!1};n()}},e}(Ue),Ve=Math.max,We=function(t){return b(function(e){var n=e.pop();t.call(this,e,n)})},He="object"==typeof t&&t&&t.Object===Object&&t,Ze="object"==typeof self&&self&&self.Object===Object&&self,Ye=He||Ze||Function("return this")(),Xe=Ye.Symbol,Ke=Object.prototype,Ge=Ke.hasOwnProperty,Je=Ke.toString,Qe=Xe?Xe.toStringTag:void 0,$e=Object.prototype,tn=$e.toString,en="[object Null]",nn="[object Undefined]",rn=Xe?Xe.toStringTag:void 0,on="[object AsyncFunction]",sn="[object Function]",an="[object GeneratorFunction]",cn="[object Proxy]",un=9007199254740991,fn="function"==typeof Symbol&&Symbol.iterator,hn=function(t){return fn&&t[fn]&&t[fn]()},pn="[object Arguments]",ln=Object.prototype,dn=ln.hasOwnProperty,yn=ln.propertyIsEnumerable,gn=C(function(){return arguments}())?C:function(t){return P(t)&&dn.call(t,"callee")&&!yn.call(t,"callee")},_n=Array.isArray,vn="object"==typeof e&&e&&!e.nodeType&&e,wn=vn&&"object"==typeof i&&i&&!i.nodeType&&i,mn=wn&&wn.exports===vn,En=mn?Ye.Buffer:void 0,Sn=En?En.isBuffer:void 0,bn=Sn||U,kn=9007199254740991,In=/^(?:0|[1-9]\d*)$/,On="[object Arguments]",Fn="[object Array]",Rn="[object Boolean]",Nn="[object Date]",Ln="[object Error]",Tn="[object Function]",xn="[object Map]",Dn="[object Number]",An="[object Object]",Pn="[object RegExp]",Cn="[object Set]",Un="[object String]",Mn="[object WeakMap]",Bn="[object ArrayBuffer]",jn="[object DataView]",zn="[object Float32Array]",qn="[object Float64Array]",Vn="[object Int8Array]",Wn="[object Int16Array]",Hn="[object Int32Array]",Zn="[object Uint8Array]",Yn="[object Uint8ClampedArray]",Xn="[object Uint16Array]",Kn="[object Uint32Array]",Gn={};Gn[zn]=Gn[qn]=Gn[Vn]=Gn[Wn]=Gn[Hn]=Gn[Zn]=Gn[Yn]=Gn[Xn]=Gn[Kn]=!0,Gn[On]=Gn[Fn]=Gn[Bn]=Gn[Rn]=Gn[jn]=Gn[Nn]=Gn[Ln]=Gn[Tn]=Gn[xn]=Gn[Dn]=Gn[An]=Gn[Pn]=Gn[Cn]=Gn[Un]=Gn[Mn]=!1;var Jn="object"==typeof e&&e&&!e.nodeType&&e,Qn=Jn&&"object"==typeof i&&i&&!i.nodeType&&i,$n=Qn&&Qn.exports===Jn,tr=$n&&He.process,er=function(){try{return tr&&tr.binding&&tr.binding("util")}catch(t){}}(),nr=er&&er.isTypedArray,rr=nr?j(nr):B,ir=Object.prototype,or=ir.hasOwnProperty,sr=Object.prototype,ar=V(Object.keys,Object),cr=Object.prototype,ur=cr.hasOwnProperty,fr={},hr=$(Q,1/0),pr=function(t,e,n){var r=T(t)?tt:hr;r(t,e,n)},lr=et(nt);k(lr);var dr=rt(nt),yr=$(dr,1);k(yr),b(function(t,e){return b(function(n){return t.apply(null,e.concat(n))})});var gr,_r=(ot(),"\\ud800-\\udfff"),vr="\\u0300-\\u036f",wr="\\ufe20-\\ufe2f",mr="\\u20d0-\\u20ff",Er=vr+wr+mr,Sr="\\ufe0e\\ufe0f",br="["+_r+"]",kr="["+Er+"]",Ir="\\ud83c[\\udffb-\\udfff]",Or="(?:"+kr+"|"+Ir+")",Fr="[^"+_r+"]",Rr="(?:\\ud83c[\\udde6-\\uddff]){2}",Nr="[\\ud800-\\udbff][\\udc00-\\udfff]",Lr="\\u200d",Tr=Or+"?",xr="["+Sr+"]?",Dr=("(?:"+Lr+"(?:"+[Fr,Rr,Nr].join("|")+")"+xr+Tr+")*","(?:"+[Fr+kr+"?",kr,Rr,Nr,br].join("|")+")","function"==typeof setImmediate&&setImmediate),Ar="object"==typeof o&&"function"==typeof o.nextTick;gr=Dr?setImmediate:Ar?o.nextTick:st,at(gr);var Pr=$(Q,1),Cr=b(function(t){return b(function(e){var n=this,r=e[e.length-1];"function"==typeof r?e.pop():r=x,ct(t,e,function(t,e,r){e.apply(n,t.concat([b(function(t,e){r(t,e)})]))},function(t,e){r.apply(n,[t].concat(e))})})});b(function(t){return Cr.apply(null,t.reverse())}),b(function(t){var e=[null].concat(t);return We(function(t,n){return n.apply(this,e)})}),ut("dir"),ut("log");var Ur;Ur=Ar?o.nextTick:Dr?setImmediate:st,at(Ur);var Mr,Br=(Math.ceil,Math.max,function(t){this._cache={},this._client=t});Br.prototype.readdir=function(t,e){var n=this,r=this.getCachedDirInfo(t);this._wrap(function(e){null!==r&&r.contents?n._client.readdir(t,{contentHash:r.stat.contentHash},e):n._client.readdir(t,e)},function(i,o,s,a){i?i.status===Dropbox.ApiError.NO_CONTENT&&null!==r?e(null,r.contents.slice(0)):e(i):(n.updateCachedDirInfo(t,s,o.slice(0)),a.forEach(function(e){n.updateCachedInfo(ye.join(t,e.name),e)}),e(null,o))})},Br.prototype.remove=function(t,e){var n=this;this._wrap(function(e){n._client.remove(t,e)},function(r,i){r||n.updateCachedInfo(t,i),e(r)})},Br.prototype.move=function(t,e,n){var r=this;this._wrap(function(n){r._client.move(t,e,n)},function(i,o){i||(r.deleteCachedInfo(t),r.updateCachedInfo(e,o)),n(i)})},Br.prototype.stat=function(t,e){var n=this;this._wrap(function(e){n._client.stat(t,e)},function(r,i){r||n.updateCachedInfo(t,i),e(r,i)})},Br.prototype.readFile=function(t,e){var n=this,r=this.getCachedFileInfo(t);null!==r&&null!==r.contents?this.stat(t,function(i,o){i?e(i):o.contentHash===r.stat.contentHash?e(i,r.contents.slice(0),r.stat):n.readFile(t,e)}):this._wrap(function(e){n._client.readFile(t,{arrayBuffer:!0},e)},function(r,i,o){r||n.updateCachedInfo(t,o,i.slice(0)),e(r,i,o)})},Br.prototype.writeFile=function(t,e,n){var r=this;this._wrap(function(n){r._client.writeFile(t,e,n)},function(i,o){i||r.updateCachedInfo(t,o,e.slice(0)),n(i,o)})},Br.prototype.mkdir=function(t,e){var n=this;this._wrap(function(e){n._client.mkdir(t,e)},function(r,i){r||n.updateCachedInfo(t,i,[]),e(r)})},Br.prototype._wrap=function(t,e){var n=0,r=function(i){var o=2;if(i&&3>++n)switch(i.status){case Dropbox.ApiError.SERVER_ERROR:case Dropbox.ApiError.NETWORK_ERROR:case Dropbox.ApiError.RATE_LIMITED:setTimeout(function(){t(r)},1e3*o);break;default:e.apply(null,arguments)}else e.apply(null,arguments)};t(r)},Br.prototype.getCachedInfo=function(t){return this._cache[t.toLowerCase()]},Br.prototype.putCachedInfo=function(t,e){this._cache[t.toLowerCase()]=e},Br.prototype.deleteCachedInfo=function(t){delete this._cache[t.toLowerCase()]},Br.prototype.getCachedDirInfo=function(t){var e=this.getCachedInfo(t);return dt(e)?e:null},Br.prototype.getCachedFileInfo=function(t){var e=this.getCachedInfo(t);return lt(e)?e:null},Br.prototype.updateCachedDirInfo=function(t,e,n){void 0===n&&(n=null);var r=this.getCachedInfo(t);null===e.contentHash||void 0!==r&&r.stat.contentHash===e.contentHash||this.putCachedInfo(t,{stat:e,contents:n})},Br.prototype.updateCachedFileInfo=function(t,e,n){void 0===n&&(n=null);var r=this.getCachedInfo(t);null===e.versionTag||void 0!==r&&r.stat.versionTag===e.versionTag||this.putCachedInfo(t,{stat:e,contents:n})},Br.prototype.updateCachedInfo=function(t,e,n){void 0===n&&(n=null),e.isFile&&yt(n)?this.updateCachedFileInfo(t,e,n):e.isFolder&&Array.isArray(n)&&this.updateCachedDirInfo(t,e,n)};var jr=function(t){function e(e,n,r,i,o){t.call(this,e,n,r,i,o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.sync=function(t){var e=this;if(this.isDirty()){var n=this.getBuffer(),r=d(n);this._fs._writeFileStrict(this.getPath(),r,function(n){n||e.resetDirty(),t(n)})}else t()},e.prototype.close=function(t){this.sync(t)},e}(Be),zr=function(t){function e(e){t.call(this),this._client=new Br(e),pt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return"undefined"!=typeof Dropbox},e.prototype.getName=function(){return"Dropbox"},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsSymlinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!1},e.prototype.empty=function(t){var e=this;this._client.readdir("/",function(n,r){if(n)t(e.convert(n,"/"));else{var i=function(t,n){var r=ye.join("/",t);e._client.remove(r,function(t){n(t?e.convert(t,r):null)})},o=function(e){e?t(e):t()};ht(r,i,o)}})},e.prototype.rename=function(t,e,n){var r=this;this._client.move(t,e,function(i){i?r._client.stat(e,function(o,s){if(o||s.isFolder){var a=i.response.error.indexOf(t)>-1?t:e;n(r.convert(i,a))}else r._client.remove(e,function(i){i?n(r.convert(i,e)):r.rename(t,e,n)})}):n()})},e.prototype.stat=function(t,e,n){var r=this;this._client.stat(t,function(e,i){if(e)n(r.convert(e,t));else{if(!i||!i.isRemoved){var o=new ke(r._statType(i),i.size);return n(null,o)}n(me.FileError(ge.ENOENT,t))}})},e.prototype.open=function(t,e,n,i){var o=this;this._client.readFile(t,function(n,s,a){if(!n){var c;c=null===s?new r(0):v(s);var u=o._makeFile(t,e,a,c);return i(null,u)}if(e.isReadable())i(o.convert(n,t));else switch(n.status){case Dropbox.ApiError.NOT_FOUND:var f=new ArrayBuffer(0);return o._writeFileStrict(t,f,function(n,r){if(n)i(n);else{var s=o._makeFile(t,e,r,v(f));i(null,s)}});default:return i(o.convert(n,t))}})},e.prototype._writeFileStrict=function(t,e,n){var r=this,i=ye.dirname(t);this.stat(i,!1,function(o,s){o?n(me.FileError(ge.ENOENT,i)):r._client.writeFile(t,e,function(e,i){e?n(r.convert(e,t)):n(null,i)})})},e.prototype._statType=function(t){return t.isFile?be.FILE:be.DIRECTORY},e.prototype._makeFile=function(t,e,n,r){var i=this._statType(n),o=new ke(i,n.size);return new jr(this,t,e,o,r)},e.prototype._remove=function(t,e,n){var r=this;this._client.stat(t,function(i,o){i?e(r.convert(i,t)):o.isFile&&!n?e(me.FileError(ge.ENOTDIR,t)):!o.isFile&&n?e(me.FileError(ge.EISDIR,t)):r._client.remove(t,function(n){e(n?r.convert(n,t):null)})})},e.prototype.unlink=function(t,e){this._remove(t,e,!0)},e.prototype.rmdir=function(t,e){this._remove(t,e,!1)},e.prototype.mkdir=function(t,e,n){var r=this,i=ye.dirname(t);this._client.stat(i,function(e,o){e?n(r.convert(e,i)):r._client.mkdir(t,function(e){n(e?me.FileError(ge.EEXIST,t):null)})})},e.prototype.readdir=function(t,e){var n=this;this._client.readdir(t,function(t,r){return t?e(n.convert(t)):e(null,r)})},e.prototype.convert=function(t,e){void 0===e&&(e=null);var n=Mr[t.status];return void 0===n&&(n=ge.EIO),e?me.FileError(n,e):new me(n)},e}(Ce),qr=function(t){function e(e,n,r,i){t.call(this),this._fs=e,this._FS=n,this._path=r,this._stream=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPos=function(){},e.prototype.close=function(t){var e=null;try{this.closeSync()}catch(t){e=t}finally{t(e)}},e.prototype.closeSync=function(){try{this._FS.close(this._stream)}catch(t){throw gt(t,this._path)}},e.prototype.stat=function(t){try{t(null,this.statSync())}catch(e){t(e)}},e.prototype.statSync=function(){try{return this._fs.statSync(this._path,!1)}catch(t){throw gt(t,this._path)}},e.prototype.truncate=function(t,e){var n=null;try{this.truncateSync(t)}catch(t){n=t}finally{e(n)}},e.prototype.truncateSync=function(t){try{this._FS.ftruncate(this._stream.fd,t)}catch(t){throw gt(t,this._path)}},e.prototype.write=function(t,e,n,r,i){try{i(null,this.writeSync(t,e,n,r),t)}catch(t){i(t)}},e.prototype.writeSync=function(t,e,n,r){try{var i=y(t),o=null===r?void 0:r;return this._FS.write(this._stream,i,e,n,o)}catch(t){throw gt(t,this._path)}},e.prototype.read=function(t,e,n,r,i){try{i(null,this.readSync(t,e,n,r),t)}catch(t){i(t)}},e.prototype.readSync=function(t,e,n,r){try{var i=y(t),o=null===r?void 0:r;return this._FS.read(this._stream,i,e,n,o)}catch(t){throw gt(t,this._path)}},e.prototype.sync=function(t){t()},e.prototype.syncSync=function(){},e.prototype.chown=function(t,e,n){var r=null;try{this.chownSync(t,e)}catch(t){r=t}finally{n(r)}},e.prototype.chownSync=function(t,e){try{this._FS.fchown(this._stream.fd,t,e)}catch(t){throw gt(t,this._path)}},e.prototype.chmod=function(t,e){var n=null;try{this.chmodSync(t)}catch(t){n=t}finally{e(n)}},e.prototype.chmodSync=function(t){try{this._FS.fchmod(this._stream.fd,t)}catch(t){throw gt(t,this._path)}},e.prototype.utimes=function(t,e,n){var r=null;try{this.utimesSync(t,e)}catch(t){r=t}finally{n(r)}},e.prototype.utimesSync=function(t,e){this._fs.utimesSync(this._path,t,e)},e}(Me),Vr=function(t){function e(e){t.call(this),this._FS=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.getName=function(){return this._FS.DB_NAME()},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsLinks=function(){return!0},e.prototype.supportsProps=function(){return!0},e.prototype.supportsSynch=function(){return!0},e.prototype.renameSync=function(t,e){try{this._FS.rename(t,e)}catch(n){throw n.errno===ge.ENOENT?gt(n,this.existsSync(t)?e:t):gt(n)}},e.prototype.statSync=function(t,e){try{var n=e?this._FS.lstat(t):this._FS.stat(t),r=this.modeToFileType(n.mode);return new ke(r,n.size,n.mode,n.atime,n.mtime,n.ctime)}catch(e){throw gt(e,t)}},e.prototype.openSync=function(t,e,n){try{var r=this._FS.open(t,e.getFlagString(),n);if(this._FS.isDir(r.node.mode))throw this._FS.close(r),me.EISDIR(t);return new qr(this,this._FS,t,r)}catch(e){throw gt(e,t)}},e.prototype.unlinkSync=function(t){try{this._FS.unlink(t)}catch(e){throw gt(e,t)}},e.prototype.rmdirSync=function(t){try{this._FS.rmdir(t)}catch(e){throw gt(e,t)}},e.prototype.mkdirSync=function(t,e){try{this._FS.mkdir(t,e)}catch(e){throw gt(e,t)}},e.prototype.readdirSync=function(t){try{return this._FS.readdir(t).filter(function(t){return"."!==t&&".."!==t})}catch(e){throw gt(e,t)}},e.prototype.truncateSync=function(t,e){try{this._FS.truncate(t,e)}catch(e){throw gt(e,t)}},e.prototype.readFileSync=function(t,e,n){try{var r=this._FS.readFile(t,{flags:n.getFlagString()}),i=_(r);return e?i.toString(e):i}catch(e){throw gt(e,t)}},e.prototype.writeFileSync=function(t,e,n,i,o){try{n&&(e=new r(e,n));var s=y(e);this._FS.writeFile(t,s,{flags:i.getFlagString(),encoding:"binary"}),this._FS.chmod(t,o)}catch(e){throw gt(e,t)}},e.prototype.chmodSync=function(t,e,n){try{e?this._FS.lchmod(t,n):this._FS.chmod(t,n)}catch(e){throw gt(e,t)}},e.prototype.chownSync=function(t,e,n,r){try{e?this._FS.lchown(t,n,r):this._FS.chown(t,n,r)}catch(e){throw gt(e,t)}},e.prototype.symlinkSync=function(t,e,n){try{this._FS.symlink(t,e)}catch(t){throw gt(t)}},e.prototype.readlinkSync=function(t){try{return this._FS.readlink(t)}catch(e){throw gt(e,t)}},e.prototype.utimesSync=function(t,e,n){try{this._FS.utime(t,e.getTime(),n.getTime())}catch(e){throw gt(e,t)}},e.prototype.modeToFileType=function(t){if(this._FS.isDir(t))return be.DIRECTORY;if(this._FS.isFile(t))return be.FILE;if(this._FS.isLink(t))return be.SYMLINK;throw me.EPERM("Invalid mode: "+t)},e}(Ue),Wr=function(t){function e(e,n){t.call(this),this._folder=e,this._wrapped=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.initialize=function(t){var e=this;this._wrapped.exists(this._folder,function(n){n?t():e._wrapped.isReadOnly()?t(me.ENOENT(e._folder)):e._wrapped.mkdir(e._folder,511,t)})},e.prototype.getName=function(){return this._wrapped.getName()},e.prototype.isReadOnly=function(){return this._wrapped.isReadOnly()},e.prototype.supportsProps=function(){return this._wrapped.supportsProps()},e.prototype.supportsSynch=function(){return this._wrapped.supportsSynch()},e.prototype.supportsLinks=function(){return!1},e}(Ce);["diskSpace","stat","statSync","open","openSync","unlink","unlinkSync","rmdir","rmdirSync","mkdir","mkdirSync","readdir","readdirSync","exists","existsSync","realpath","realpathSync","truncate","truncateSync","readFile","readFileSync","writeFile","writeFileSync","appendFile","appendFileSync","chmod","chmodSync","chown","chownSync","utimes","utimesSync","readlink","readlinkSync"].forEach(function(t){Wr.prototype[t]=wt(t,!0,!1)}),["rename","renameSync","link","linkSync","symlink","symlinkSync"].forEach(function(t){Wr.prototype[t]=wt(t,!0,!0)});var Hr=_e.webkitRequestFileSystem||_e.requestFileSystem||null,Zr=function(t){function e(e,n,r,i,o,s){t.call(this,e,r,i,o,s),this._entry=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.sync=function(t){var e=this;return this.isDirty()?void this._entry.createWriter(function(n){var r=e.getBuffer(),i=new Blob([d(r)]),o=i.size;n.onwriteend=function(r){n.onwriteend=null,n.onerror=null,n.truncate(o),e.resetDirty(),t()},n.onerror=function(n){t(bt(n,e.getPath(),!1))},n.write(i)}):t()},e.prototype.close=function(t){this.sync(t)},e}(Be),Yr=function(t){function e(e,n){void 0===e&&(e=5),void 0===n&&(n=_e.PERSISTENT),t.call(this),this.size=1048576*e,this.type=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!!Hr},e.prototype.getName=function(){return"HTML5 FileSystem"},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsSymlinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!1},e.prototype.allocate=function(t){var e=this;void 0===t&&(t=function(){});var n=function(n){e.fs=n,t()},r=function(e){t(bt(e,"/",!0))};this.type===_e.PERSISTENT?Et(this.type,this.size,function(t){Hr(e.type,t,n,r)},r):Hr(this.type,this.size,n,r)},e.prototype.empty=function(t){this._readdir("/",function(e,n){if(e)console.error("Failed to empty FS"),t(e);else{var r=function(n){e?(console.error("Failed to empty FS"),t(e)):t()},i=function(t,e){var n=function(){e()},r=function(n){e(bt(n,t.fullPath,!t.isDirectory))};mt(t)?t.removeRecursively(n,r):t.remove(n,r)};ht(n,i,r)}})},e.prototype.rename=function(t,e,n){var r=this,i=2,o=0,s=this.fs.root,a=t,c=function(t){--i<=0&&n(bt(t,a,!1))},u=function(i){return 2===++o?n(new me(ge.EINVAL,"Something was identified as both a file and a directory. This should never happen.")):t===e?n():(a=ye.dirname(e),void s.getDirectory(a,{},function(o){a=ye.basename(e),i.moveTo(o,a,function(t){n()},function(o){i.isDirectory?(a=e,r.unlink(e,function(i){i?c(o):r.rename(t,e,n)})):c(o)})},c))};s.getFile(t,{},u,c),s.getDirectory(t,{},u,c)},e.prototype.stat=function(t,e,n){var r=this,i={create:!1},o=function(t){var e=function(t){var e=new ke(be.FILE,t.size);n(null,e)};t.file(e,a)},s=function(t){var e=4096,r=new ke(be.DIRECTORY,e);n(null,r)},a=function(e){n(bt(e,t,!1))},c=function(){r.fs.root.getDirectory(t,i,s,a)};this.fs.root.getFile(t,i,o,c)},e.prototype.open=function(t,e,n,r){var i=this,o=function(n){r("InvalidModificationError"===n.name&&e.isExclusive()?me.EEXIST(t):bt(n,t,!1))};this.fs.root.getFile(t,{create:e.pathNotExistsAction()===we.CREATE_FILE,exclusive:e.isExclusive()},function(n){n.file(function(s){var a=new FileReader;a.onloadend=function(o){var c=i._makeFile(t,n,e,s,a.result);r(null,c)},a.onerror=function(t){o(a.error)},a.readAsArrayBuffer(s)},o)},o)},e.prototype.unlink=function(t,e){this._remove(t,e,!0)},e.prototype.rmdir=function(t,e){var n=this;this.readdir(t,function(r,i){r?e(r):i.length>0?e(me.ENOTEMPTY(t)):n._remove(t,e,!1)})},e.prototype.mkdir=function(t,e,n){var r={create:!0,exclusive:!0},i=function(t){n()},o=function(e){n(bt(e,t,!0))};this.fs.root.getDirectory(t,r,i,o)},e.prototype.readdir=function(t,e){this._readdir(t,function(t,n){if(t)return e(t);for(var r=[],i=0;i<n.length;i++)r.push(n[i].name);e(null,r)})},e.prototype._makeFile=function(t,e,n,r,i){void 0===i&&(i=new ArrayBuffer(0));var o=new ke(be.FILE,r.size),s=v(i);return new Zr(this,e,t,n,o,s)},e.prototype._readdir=function(t,e){var n=function(n){e(bt(n,t,!0))};this.fs.root.getDirectory(t,{create:!1},function(t){var r=t.createReader(),i=[],o=function(){r.readEntries(function(t){t.length?(i=i.concat(St(t)),o()):e(null,i)},n)};o()},n)},e.prototype._remove=function(t,e,n){var r=function(r){var i=function(){e()},o=function(r){e(bt(r,t,!n))};r.remove(i,o)},i=function(r){e(bt(r,t,!n))},o={create:!1};n?this.fs.root.getFile(t,o,r,i):this.fs.root.getDirectory(t,o,r,i)},e}(Ce),Xr=function(t,e,n,r,i,o){this.id=t,this.size=e,this.mode=n,this.atime=r,this.mtime=i,this.ctime=o};Xr.fromBuffer=function(t){if(void 0===t)throw new Error("NO");return new Xr(t.toString("ascii",30),t.readUInt32LE(0),t.readUInt16LE(4),t.readDoubleLE(6),t.readDoubleLE(14),t.readDoubleLE(22))},Xr.prototype.toStats=function(){return new ke((61440&this.mode)===be.DIRECTORY?be.DIRECTORY:be.FILE,this.size,this.mode,new Date(this.atime),new Date(this.mtime),new Date(this.ctime))},Xr.prototype.getSize=function(){return 30+this.id.length},Xr.prototype.toBuffer=function(t){return void 0===t&&(t=new r(this.getSize())),t.writeUInt32LE(this.size,0),t.writeUInt16LE(this.mode,4),t.writeDoubleLE(this.atime,6),t.writeDoubleLE(this.mtime,14),t.writeDoubleLE(this.ctime,22),t.write(this.id,30,this.id.length,"ascii"),t},Xr.prototype.update=function(t){var e=!1;this.size!==t.size&&(this.size=t.size,e=!0),this.mode!==t.mode&&(this.mode=t.mode,e=!0);var n=t.atime.getTime();this.atime!==n&&(this.atime=n,e=!0);var r=t.mtime.getTime();this.mtime!==r&&(this.mtime=r,e=!0);var i=t.ctime.getTime();return this.ctime!==i&&(this.ctime=i,e=!0),e},Xr.prototype.isFile=function(){return(61440&this.mode)===be.FILE},Xr.prototype.isDirectory=function(){return(61440&this.mode)===be.DIRECTORY};var Kr="/",Gr=function(t){this.store=t,this.originalData={},this.modifiedKeys=[]};Gr.prototype.get=function(t){var e=this.store.get(t);return this.stashOldValue(t,e),e},Gr.prototype.put=function(t,e,n){return this.markModified(t),this.store.put(t,e,n)},Gr.prototype.del=function(t){this.markModified(t),this.store.del(t)},Gr.prototype.commit=function(){},Gr.prototype.abort=function(){for(var t=this,e=0;e<this.modifiedKeys.length;e++){var n=t.modifiedKeys[e],r=t.originalData[n];r?t.store.put(n,r,!0):t.store.del(n)}},Gr.prototype.stashOldValue=function(t,e){this.originalData.hasOwnProperty(t)||(this.originalData[t]=e)},Gr.prototype.markModified=function(t){this.modifiedKeys.indexOf(t)===-1&&(this.modifiedKeys.push(t),this.originalData.hasOwnProperty(t)||(this.originalData[t]=this.store.get(t)))};var Jr=function(t){function e(e,n,r,i,o){t.call(this,e,n,r,i,o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.syncSync=function(){this.isDirty()&&(this._fs._syncSync(this.getPath(),this.getBuffer(),this.getStats()),this.resetDirty())},e.prototype.closeSync=function(){this.syncSync()},e}(Be),Qr=function(t){function e(e){t.call(this),this.store=e.store,this.makeRootDirectory()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.getName=function(){return this.store.name()},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsSymlinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!0},e.prototype.empty=function(){this.store.clear(),this.makeRootDirectory()},e.prototype.renameSync=function(t,e){var n=this.store.beginTransaction("readwrite"),i=ye.dirname(t),o=ye.basename(t),s=ye.dirname(e),a=ye.basename(e),c=this.findINode(n,i),u=this.getDirListing(n,i,c);if(!u[o])throw me.ENOENT(t);var f=u[o];if(delete u[o],0===(s+"/").indexOf(t+"/"))throw new me(ge.EBUSY,i);var h,p;if(s===i?(h=c,p=u):(h=this.findINode(n,s),p=this.getDirListing(n,s,h)),p[a]){var l=this.getINode(n,e,p[a]);if(!l.isFile())throw me.EPERM(e);try{n.del(l.id),n.del(p[a])}catch(t){throw n.abort(),t}}p[a]=f;try{n.put(c.id,new r(JSON.stringify(u)),!0),n.put(h.id,new r(JSON.stringify(p)),!0)}catch(t){throw n.abort(),t}n.commit()},e.prototype.statSync=function(t,e){return this.findINode(this.store.beginTransaction("readonly"),t).toStats()},e.prototype.createFileSync=function(t,e,n){var i=this.store.beginTransaction("readwrite"),o=new r(0),s=this.commitNewFile(i,t,be.FILE,n,o);return new Jr(this,t,e,s.toStats(),o)},e.prototype.openFileSync=function(t,e){var n=this.store.beginTransaction("readonly"),r=this.findINode(n,t),i=n.get(r.id);if(void 0===i)throw me.ENOENT(t);return new Jr(this,t,e,r.toStats(),i)},e.prototype.unlinkSync=function(t){this.removeEntry(t,!1)},e.prototype.rmdirSync=function(t){if(this.readdirSync(t).length>0)throw me.ENOTEMPTY(t);this.removeEntry(t,!0)},e.prototype.mkdirSync=function(t,e){var n=this.store.beginTransaction("readwrite"),i=new r("{}");this.commitNewFile(n,t,be.DIRECTORY,e,i)},e.prototype.readdirSync=function(t){var e=this.store.beginTransaction("readonly");return Object.keys(this.getDirListing(e,t,this.findINode(e,t)))},e.prototype._syncSync=function(t,e,n){var r=this.store.beginTransaction("readwrite"),i=this._findINode(r,ye.dirname(t),ye.basename(t)),o=this.getINode(r,t,i),s=o.update(n);try{r.put(o.id,e,!0),s&&r.put(i,o.toBuffer(),!0)}catch(t){throw r.abort(),t}r.commit()},e.prototype.makeRootDirectory=function(){var t=this.store.beginTransaction("readwrite");if(void 0===t.get(Kr)){var e=(new Date).getTime(),n=new Xr(kt(),4096,511|be.DIRECTORY,e,e,e);t.put(n.id,new r("{}"),!1),t.put(Kr,n.toBuffer(),!1),t.commit()}},e.prototype._findINode=function(t,e,n){var r=this,i=function(i){var o=r.getDirListing(t,e,i);if(o[n])return o[n];throw me.ENOENT(ye.resolve(e,n))};return"/"===e?""===n?Kr:i(this.getINode(t,e,Kr)):i(this.getINode(t,e+ye.sep+n,this._findINode(t,ye.dirname(e),ye.basename(e))))},e.prototype.findINode=function(t,e){return this.getINode(t,e,this._findINode(t,ye.dirname(e),ye.basename(e)))},e.prototype.getINode=function(t,e,n){var r=t.get(n);if(void 0===r)throw me.ENOENT(e);return Xr.fromBuffer(r)},e.prototype.getDirListing=function(t,e,n){if(!n.isDirectory())throw me.ENOTDIR(e);var r=t.get(n.id);if(void 0===r)throw me.ENOENT(e);return JSON.parse(r.toString())},e.prototype.addNewNode=function(t,e){for(var n,r=0;r<5;)try{return n=kt(),t.put(n,e,!1),n}catch(t){}throw new me(ge.EIO,"Unable to commit data to key-value store.")},e.prototype.commitNewFile=function(t,e,n,i,o){var s=ye.dirname(e),a=ye.basename(e),c=this.findINode(t,s),u=this.getDirListing(t,s,c),f=(new Date).getTime();if("/"===e)throw me.EEXIST(e);if(u[a])throw me.EEXIST(e);var h;try{var p=this.addNewNode(t,o);h=new Xr(p,o.length,i|n,f,f,f);var l=this.addNewNode(t,h.toBuffer());u[a]=l,t.put(c.id,new r(JSON.stringify(u)),!0)}catch(e){throw t.abort(),e}return t.commit(),h},e.prototype.removeEntry=function(t,e){var n=this.store.beginTransaction("readwrite"),i=ye.dirname(t),o=this.findINode(n,i),s=this.getDirListing(n,i,o),a=ye.basename(t);if(!s[a])throw me.ENOENT(t);var c=s[a];delete s[a];var u=this.getINode(n,t,c);if(!e&&u.isDirectory())throw me.EISDIR(t);if(e&&!u.isDirectory())throw me.ENOTDIR(t);try{n.del(u.id),n.del(c),n.put(o.id,new r(JSON.stringify(s)),!0)}catch(t){throw n.abort(),t}n.commit()},e}(Ue),$r=function(t){function e(e,n,r,i,o){t.call(this,e,n,r,i,o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.sync=function(t){var e=this;this.isDirty()?this._fs._sync(this.getPath(),this.getBuffer(),this.getStats(),function(n){n||e.resetDirty(),t(n)}):t()},e.prototype.close=function(t){this.sync(t)},e}(Be),ti=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.init=function(t,e){this.store=t,this.makeRootDirectory(e)},e.prototype.getName=function(){return this.store.name()},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsSymlinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!1},e.prototype.empty=function(t){var e=this;this.store.clear(function(n){It(n,t)&&e.makeRootDirectory(t)})},e.prototype.rename=function(t,e,n){var i=this,o=this.store.beginTransaction("readwrite"),s=ye.dirname(t),a=ye.basename(t),c=ye.dirname(e),u=ye.basename(e),f={},h={},p=!1;if(0===(c+"/").indexOf(t+"/"))return n(new me(ge.EBUSY,s));var l=function(){if(!p&&h.hasOwnProperty(s)&&h.hasOwnProperty(c)){var l=h[s],d=f[s],y=h[c],g=f[c];if(l[a]){var _=l[a];delete l[a];var v=function(){y[u]=_,o.put(d.id,new r(JSON.stringify(l)),!0,function(t){Ot(t,o,n)&&(s===c?o.commit(n):o.put(g.id,new r(JSON.stringify(y)),!0,function(t){Ot(t,o,n)&&o.commit(n)}))})};y[u]?i.getINode(o,e,y[u],function(t,r){Ot(t,o,n)&&(r.isFile()?o.del(r.id,function(t){Ot(t,o,n)&&o.del(y[u],function(t){Ot(t,o,n)&&v()})}):o.abort(function(t){n(me.EPERM(e))}))}):v()}else n(me.ENOENT(t))}},d=function(t){i.findINodeAndDirListing(o,t,function(e,r,i){e?p||(p=!0,o.abort(function(){n(e)})):(f[t]=r,h[t]=i,l())})};d(s),s!==c&&d(c)},e.prototype.stat=function(t,e,n){var r=this.store.beginTransaction("readonly");this.findINode(r,t,function(t,e){It(t,n)&&n(null,e.toStats())})},e.prototype.createFile=function(t,e,n,i){var o=this,s=this.store.beginTransaction("readwrite"),a=new r(0);this.commitNewFile(s,t,be.FILE,n,a,function(n,r){It(n,i)&&i(null,new $r(o,t,e,r.toStats(),a))})},e.prototype.openFile=function(t,e,n){var r=this,i=this.store.beginTransaction("readonly");this.findINode(i,t,function(o,s){It(o,n)&&i.get(s.id,function(i,o){It(i,n)&&(void 0===o?n(me.ENOENT(t)):n(null,new $r(r,t,e,s.toStats(),o)))})})},e.prototype.unlink=function(t,e){this.removeEntry(t,!1,e)},e.prototype.rmdir=function(t,e){var n=this;this.readdir(t,function(r,i){r?e(r):i.length>0?e(me.ENOTEMPTY(t)):n.removeEntry(t,!0,e)})},e.prototype.mkdir=function(t,e,n){var i=this.store.beginTransaction("readwrite"),o=new r("{}");this.commitNewFile(i,t,be.DIRECTORY,e,o,n)},e.prototype.readdir=function(t,e){var n=this,r=this.store.beginTransaction("readonly");this.findINode(r,t,function(i,o){It(i,e)&&n.getDirListing(r,t,o,function(t,n){It(t,e)&&e(null,Object.keys(n))})})},e.prototype._sync=function(t,e,n,r){var i=this,o=this.store.beginTransaction("readwrite");this._findINode(o,ye.dirname(t),ye.basename(t),function(s,a){Ot(s,o,r)&&i.getINode(o,t,a,function(t,i){if(Ot(t,o,r)){var s=i.update(n);o.put(i.id,e,!0,function(t){Ot(t,o,r)&&(s?o.put(a,i.toBuffer(),!0,function(t){Ot(t,o,r)&&o.commit(r)}):o.commit(r))})}})})},e.prototype.makeRootDirectory=function(t){var e=this.store.beginTransaction("readwrite");e.get(Kr,function(n,i){if(n||void 0===i){var o=(new Date).getTime(),s=new Xr(kt(),4096,511|be.DIRECTORY,o,o,o);e.put(s.id,new r("{}"),!1,function(n){Ot(n,e,t)&&e.put(Kr,s.toBuffer(),!1,function(n){n?e.abort(function(){t(n)}):e.commit(t)})})}else e.commit(t)})},e.prototype._findINode=function(t,e,n,r){var i=this,o=function(t,i,o){t?r(t):o[n]?r(null,o[n]):r(me.ENOENT(ye.resolve(e,n)))};"/"===e?""===n?r(null,Kr):this.getINode(t,e,Kr,function(n,s){It(n,r)&&i.getDirListing(t,e,s,function(t,e){o(t,s,e)})}):this.findINodeAndDirListing(t,e,o)},e.prototype.findINode=function(t,e,n){var r=this;this._findINode(t,ye.dirname(e),ye.basename(e),function(i,o){It(i,n)&&r.getINode(t,e,o,n)})},e.prototype.getINode=function(t,e,n,r){t.get(n,function(t,n){It(t,r)&&(void 0===n?r(me.ENOENT(e)):r(null,Xr.fromBuffer(n)))})},e.prototype.getDirListing=function(t,e,n,r){n.isDirectory()?t.get(n.id,function(t,n){if(It(t,r))try{r(null,JSON.parse(n.toString()))}catch(t){r(me.ENOENT(e))}}):r(me.ENOTDIR(e))},e.prototype.findINodeAndDirListing=function(t,e,n){var r=this;this.findINode(t,e,function(i,o){It(i,n)&&r.getDirListing(t,e,o,function(t,e){It(t,n)&&n(null,o,e)})})},e.prototype.addNewNode=function(t,e,n){var r,i=0,o=function(){5===++i?n(new me(ge.EIO,"Unable to commit data to key-value store.")):(r=kt(),t.put(r,e,!1,function(t,e){t||!e?o():n(null,r)}))};o()},e.prototype.commitNewFile=function(t,e,n,i,o,s){var a=this,c=ye.dirname(e),u=ye.basename(e),f=(new Date).getTime();return"/"===e?s(me.EEXIST(e)):void this.findINodeAndDirListing(t,c,function(c,h,p){Ot(c,t,s)&&(p[u]?t.abort(function(){s(me.EEXIST(e))}):a.addNewNode(t,o,function(e,c){if(Ot(e,t,s)){var l=new Xr(c,o.length,i|n,f,f,f);a.addNewNode(t,l.toBuffer(),function(e,n){Ot(e,t,s)&&(p[u]=n,t.put(h.id,new r(JSON.stringify(p)),!0,function(e){Ot(e,t,s)&&t.commit(function(e){Ot(e,t,s)&&s(null,l)})}))})}}))})},e.prototype.removeEntry=function(t,e,n){var i=this,o=this.store.beginTransaction("readwrite"),s=ye.dirname(t),a=ye.basename(t);this.findINodeAndDirListing(o,s,function(s,c,u){if(Ot(s,o,n))if(u[a]){var f=u[a];delete u[a],i.getINode(o,t,f,function(i,s){Ot(i,o,n)&&(!e&&s.isDirectory()?o.abort(function(){n(me.EISDIR(t))}):e&&!s.isDirectory()?o.abort(function(){n(me.ENOTDIR(t))}):o.del(s.id,function(t){Ot(t,o,n)&&o.del(f,function(t){Ot(t,o,n)&&o.put(c.id,new r(JSON.stringify(u)),!0,function(t){Ot(t,o,n)&&o.commit(n)})})}))})}else o.abort(function(){n(me.ENOENT(t))})})},e}(Ce),ei=function(){this.store={}};ei.prototype.name=function(){return"In-memory"},ei.prototype.clear=function(){this.store={}},ei.prototype.beginTransaction=function(t){return new Gr(this)},ei.prototype.get=function(t){return this.store[t]},ei.prototype.put=function(t,e,n){return!(!n&&this.store.hasOwnProperty(t))&&(this.store[t]=e,!0)},ei.prototype.del=function(t){delete this.store[t]};var ni=function(t){function e(){t.call(this,{store:new ei})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Qr),ri=_e.indexedDB||_e.mozIndexedDB||_e.webkitIndexedDB||_e.msIndexedDB,ii=function(t,e){this.tx=t,this.store=e};ii.prototype.get=function(t,e){try{var n=this.store.get(t);n.onerror=Rt(e),n.onsuccess=function(t){var n=t.target.result;void 0===n?e(null,n):e(null,v(n))}}catch(t){e(Ft(t))}};var oi=function(t){function e(e,n){t.call(this,e,n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.put=function(t,e,n,r){try{var i,o=d(e);i=n?this.store.put(o,t):this.store.add(o,t),i.onerror=Rt(r),i.onsuccess=function(t){r(null,!0)}}catch(t){r(Ft(t))}},e.prototype.del=function(t,e){try{var n=this.store.delete(t);n.onerror=Rt(e),n.onsuccess=function(t){e()}}catch(t){e(Ft(t))}},e.prototype.commit=function(t){setTimeout(t,0)},e.prototype.abort=function(t){var e=null;try{this.tx.abort()}catch(t){e=Ft(t)}finally{t(e)}},e}(ii),si=function(t,e){var n=this;void 0===e&&(e="browserfs"),this.storeName=e;var r=ri.open(this.storeName,1);r.onupgradeneeded=function(t){var e=t.target.result;e.objectStoreNames.contains(n.storeName)&&e.deleteObjectStore(n.storeName),e.createObjectStore(n.storeName)},r.onsuccess=function(e){n.db=e.target.result,t(null,n)},r.onerror=Rt(t,ge.EACCES)};si.prototype.name=function(){return"IndexedDB - "+this.storeName},si.prototype.clear=function(t){try{var e=this.db.transaction(this.storeName,"readwrite"),n=e.objectStore(this.storeName),r=n.clear();r.onsuccess=function(e){setTimeout(t,0)},r.onerror=Rt(t)}catch(e){t(Ft(e))}},si.prototype.beginTransaction=function(t){void 0===t&&(t="readonly");var e=this.db.transaction(this.storeName,t),n=e.objectStore(this.storeName);if("readwrite"===t)return new oi(e,n);if("readonly"===t)return new ii(e,n);throw new me(ge.EINVAL,"Invalid transaction type.")};var ai,ci=function(t){function e(e,n){var r=this;t.call(this);var i=new si(function(t){t?e(t):r.init(i,function(t){e(t,r)})},n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){try{return"undefined"!=typeof ri&&null!==ri.open("__browserfs_test__")}catch(t){return!1}},e}(ti),ui=!1;try{_e.localStorage.setItem("__test__",String.fromCharCode(55296)),ui=_e.localStorage.getItem("__test__")===String.fromCharCode(55296)}catch(t){ui=!1}ai=ui?"binary_string":"binary_string_ie",r.isEncoding(ai)||(ai="base64");var fi=function(){};fi.prototype.name=function(){return"LocalStorage"},fi.prototype.clear=function(){_e.localStorage.clear()},fi.prototype.beginTransaction=function(t){return new Gr(this)},fi.prototype.get=function(t){try{var e=_e.localStorage.getItem(t);if(null!==e)return new r(e,ai)}catch(t){}},fi.prototype.put=function(t,e,n){try{return!(!n&&null!==_e.localStorage.getItem(t))&&(_e.localStorage.setItem(t,e.toString(ai)),!0)}catch(t){throw new me(ge.ENOSPC,"LocalStorage is full.")}},fi.prototype.del=function(t){try{_e.localStorage.removeItem(t)}catch(e){throw new me(ge.EIO,"Unable to delete key "+t+": "+e)}};for(var hi=function(t){function e(){t.call(this,{store:new fi})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return"undefined"!=typeof _e.localStorage},e}(Qr),pi=function(t){function e(){t.call(this),this.mountList=[],this.mntMap={},this.rootFs=new ni}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.mount=function(t,e){if("/"!==t[0]&&(t="/"+t),t=ye.resolve(t),this.mntMap[t])throw new me(ge.EINVAL,"Mount point "+t+" is already taken.");l(t,511,this.rootFs),this.mntMap[t]=e,this.mountList.push(t),this.mountList=this.mountList.sort(function(t,e){return e.length-t.length})},e.prototype.umount=function(t){var e=this;if("/"!==t[0]&&(t="/"+t),t=ye.resolve(t),!this.mntMap[t])throw new me(ge.EINVAL,"Mount point "+t+" is already unmounted.");for(delete this.mntMap[t],this.mountList.splice(this.mountList.indexOf(t),1);"/"!==t&&0===e.rootFs.readdirSync(t).length;)e.rootFs.rmdirSync(t),t=ye.dirname(t)},e.prototype._getFs=function(t){for(var e=this,n=this.mountList,r=n.length,i=0;i<r;i++){var o=n[i];if(o.length<=t.length&&0===t.indexOf(o))return t=t.substr(o.length>1?o.length:0),""===t&&(t="/"),{fs:e.mntMap[o],path:t}}return{fs:this.rootFs,path:t}},e.prototype.getName=function(){return"MountableFileSystem"},e.prototype.diskSpace=function(t,e){e(0,0)},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsLinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!0},e.prototype.standardizeError=function(t,e,n){var r=t.message.indexOf(e);return r!==-1&&(t.message=t.message.substr(0,r)+n+t.message.substr(r+e.length),t.path=n),t},e.prototype.rename=function(t,e,n){var r=this,i=this._getFs(t),o=this._getFs(e);return i.fs===o.fs?i.fs.rename(i.path,o.path,function(s){s&&r.standardizeError(r.standardizeError(s,i.path,t),o.path,e),n(s)}):Re.readFile(t,function(r,i){return r?n(r):void Re.writeFile(e,i,function(e){return e?n(e):void Re.unlink(t,n)})})},e.prototype.renameSync=function(t,e){var n=this._getFs(t),r=this._getFs(e);if(n.fs===r.fs)try{return n.fs.renameSync(n.path,r.path)}catch(i){throw this.standardizeError(this.standardizeError(i,n.path,t),r.path,e),i}var i=Re.readFileSync(t);return Re.writeFileSync(e,i),Re.unlinkSync(t)},e.prototype.readdirSync=function(t){var e=this._getFs(t),n=null;if(e.fs!==this.rootFs)try{n=this.rootFs.readdirSync(t)}catch(t){}try{var r=e.fs.readdirSync(e.path);return null===n?r:r.concat(n.filter(function(t){return r.indexOf(t)===-1}))}catch(r){if(null===n)throw this.standardizeError(r,e.path,t);return n}},e.prototype.readdir=function(t,e){var n=this,r=this._getFs(t);r.fs.readdir(r.path,function(i,o){if(r.fs!==n.rootFs)try{var s=n.rootFs.readdirSync(t);o=o?o.concat(s.filter(function(t){return o.indexOf(t)===-1})):s}catch(o){if(i)return e(n.standardizeError(i,r.path,t))}else if(i)return e(n.standardizeError(i,r.path,t));e(null,o)})},e.prototype.rmdirSync=function(t){var e=this._getFs(t);if(this._containsMountPt(t))throw me.ENOTEMPTY(t);try{e.fs.rmdirSync(e.path)}catch(n){throw this.standardizeError(n,e.path,t)}},e.prototype.rmdir=function(t,e){var n=this,r=this._getFs(t);this._containsMountPt(t)?e(me.ENOTEMPTY(t)):r.fs.rmdir(r.path,function(i){e(i?n.standardizeError(i,r.path,t):null)})},e.prototype._containsMountPt=function(t){for(var e=this.mountList,n=e.length,r=0;r<n;r++){var i=e[r];if(i.length>=t.length&&i.slice(0,t.length)===t)return!0}return!1},e}(Ce),li=[["exists","unlink","readlink"],["stat","mkdir","realpath","truncate"],["open","readFile","chmod","utimes"],["chown"],["writeFile","appendFile"]],di=0;di<li.length;di++)for(var yi=li[di],gi=0;gi<yi.length;gi++){var _i=yi[gi];pi.prototype[_i]=Nt(_i,!1,di+1),pi.prototype[_i+"Sync"]=Nt(_i+"Sync",!0,di+1)}var vi=function(){this._locked=!1,this._waiters=[]};vi.prototype.lock=function(t){return this._locked?void this._waiters.push(t):(this._locked=!0,void t())},vi.prototype.unlock=function(){if(!this._locked)throw new Error("unlock of a non-locked mutex");var t=this._waiters.shift();return t?void setImmediate(t):void(this._locked=!1)},vi.prototype.tryLock=function(){return!this._locked&&(this._locked=!0,!0)},vi.prototype.isLocked=function(){return this._locked};var wi=function(t){this._fs=t,this._mu=new vi};wi.prototype.getName=function(){return"LockedFS<"+this._fs.getName()+">"},wi.prototype.getFSUnlocked=function(){return this._fs},wi.prototype.initialize=function(t){this._fs.initialize(t)},wi.prototype.diskSpace=function(t,e){this._fs.diskSpace(t,e)},wi.prototype.isReadOnly=function(){return this._fs.isReadOnly()},wi.prototype.supportsLinks=function(){return this._fs.supportsLinks()},wi.prototype.supportsProps=function(){return this._fs.supportsProps()},wi.prototype.supportsSynch=function(){return this._fs.supportsSynch()},wi.prototype.rename=function(t,e,n){var r=this;this._mu.lock(function(){r._fs.rename(t,e,function(t){r._mu.unlock(),n(t)})})},wi.prototype.renameSync=function(t,e){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.renameSync(t,e)},wi.prototype.stat=function(t,e,n){var r=this;this._mu.lock(function(){r._fs.stat(t,e,function(t,e){r._mu.unlock(),n(t,e)})})},wi.prototype.statSync=function(t,e){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.statSync(t,e)},wi.prototype.open=function(t,e,n,r){var i=this;this._mu.lock(function(){i._fs.open(t,e,n,function(t,e){i._mu.unlock(),r(t,e)})})},wi.prototype.openSync=function(t,e,n){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.openSync(t,e,n)},wi.prototype.unlink=function(t,e){var n=this;this._mu.lock(function(){n._fs.unlink(t,function(t){n._mu.unlock(),e(t)})})},wi.prototype.unlinkSync=function(t){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.unlinkSync(t)},wi.prototype.rmdir=function(t,e){var n=this;this._mu.lock(function(){n._fs.rmdir(t,function(t){n._mu.unlock(),e(t)})})},wi.prototype.rmdirSync=function(t){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.rmdirSync(t)},wi.prototype.mkdir=function(t,e,n){var r=this;this._mu.lock(function(){r._fs.mkdir(t,e,function(t){r._mu.unlock(),n(t)})})},wi.prototype.mkdirSync=function(t,e){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.mkdirSync(t,e)},wi.prototype.readdir=function(t,e){var n=this;this._mu.lock(function(){n._fs.readdir(t,function(t,r){n._mu.unlock(),e(t,r)})})},wi.prototype.readdirSync=function(t){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.readdirSync(t)},wi.prototype.exists=function(t,e){var n=this;this._mu.lock(function(){n._fs.exists(t,function(t){n._mu.unlock(),e(t)})})},wi.prototype.existsSync=function(t){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.existsSync(t)},wi.prototype.realpath=function(t,e,n){var r=this;this._mu.lock(function(){r._fs.realpath(t,e,function(t,e){r._mu.unlock(),n(t,e)})})},wi.prototype.realpathSync=function(t,e){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.realpathSync(t,e)},wi.prototype.truncate=function(t,e,n){var r=this;this._mu.lock(function(){r._fs.truncate(t,e,function(t){r._mu.unlock(),n(t)})})},wi.prototype.truncateSync=function(t,e){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.truncateSync(t,e)},wi.prototype.readFile=function(t,e,n,r){var i=this;this._mu.lock(function(){i._fs.readFile(t,e,n,function(t,e){i._mu.unlock(),r(t,e)})})},wi.prototype.readFileSync=function(t,e,n){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.readFileSync(t,e,n)},wi.prototype.writeFile=function(t,e,n,r,i,o){var s=this;this._mu.lock(function(){s._fs.writeFile(t,e,n,r,i,function(t){s._mu.unlock(),o(t)})})},wi.prototype.writeFileSync=function(t,e,n,r,i){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.writeFileSync(t,e,n,r,i)},wi.prototype.appendFile=function(t,e,n,r,i,o){var s=this;this._mu.lock(function(){s._fs.appendFile(t,e,n,r,i,function(t){s._mu.unlock(),o(t)})})},wi.prototype.appendFileSync=function(t,e,n,r,i){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.appendFileSync(t,e,n,r,i)},wi.prototype.chmod=function(t,e,n,r){var i=this;this._mu.lock(function(){i._fs.chmod(t,e,n,function(t){i._mu.unlock(),r(t)})})},wi.prototype.chmodSync=function(t,e,n){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.chmodSync(t,e,n)},wi.prototype.chown=function(t,e,n,r,i){var o=this;this._mu.lock(function(){o._fs.chown(t,e,n,r,function(t){o._mu.unlock(),i(t)})})},wi.prototype.chownSync=function(t,e,n,r){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.chownSync(t,e,n,r)},wi.prototype.utimes=function(t,e,n,r){var i=this;this._mu.lock(function(){i._fs.utimes(t,e,n,function(t){i._mu.unlock(),r(t)})})},wi.prototype.utimesSync=function(t,e,n){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.utimesSync(t,e,n)},wi.prototype.link=function(t,e,n){var r=this;this._mu.lock(function(){r._fs.link(t,e,function(t){r._mu.unlock(),n(t)})})},wi.prototype.linkSync=function(t,e){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.linkSync(t,e)},wi.prototype.symlink=function(t,e,n,r){var i=this;this._mu.lock(function(){i._fs.symlink(t,e,n,function(t){i._mu.unlock(),r(t)})})},wi.prototype.symlinkSync=function(t,e,n){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.symlinkSync(t,e,n)},wi.prototype.readlink=function(t,e){var n=this;this._mu.lock(function(){n._fs.readlink(t,function(t,r){n._mu.unlock(),e(t,r)})})},wi.prototype.readlinkSync=function(t){if(this._mu.isLocked())throw new Error("invalid sync call");return this._fs.readlinkSync(t)};var mi,Ei="/.deletedFiles.log",Si=function(t){function e(e,n,r,i,o){t.call(this,e,n,r,i,o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.sync=function(t){var e=this;return this.isDirty()?void this._fs._syncAsync(this,function(n){e.resetDirty(),t(n)}):void t(null)},e.prototype.syncSync=function(){this.isDirty()&&(this._fs._syncSync(this),this.resetDirty())},e.prototype.close=function(t){this.sync(t)},e.prototype.closeSync=function(){this.syncSync()},e}(Be),bi=function(t){function e(e,n){if(t.call(this),this._isInitialized=!1,this._initializeCallbacks=[],this._deletedFiles={},this._deleteLog="",this._deleteLogUpdatePending=!1,this._deleteLogUpdateNeeded=!1,this._deleteLogError=null,this._writable=e,this._readable=n,this._writable.isReadOnly())throw new me(ge.EINVAL,"Writable file system must be writable.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.getOverlayedFileSystems=function(){return{readable:this._readable,writable:this._writable}},e.prototype._syncAsync=function(t,e){var n=this;this.createParentDirectoriesAsync(t.getPath(),function(r){return r?e(r):void n._writable.writeFile(t.getPath(),t.getBuffer(),null,Tt("w"),t.getStats().mode,e)})},e.prototype._syncSync=function(t){this.createParentDirectories(t.getPath()),this._writable.writeFileSync(t.getPath(),t.getBuffer(),null,Tt("w"),t.getStats().mode)},e.prototype.getName=function(){return"OverlayFS"},e.prototype.initialize=function(t){var e=this,n=this._initializeCallbacks,r=function(t){e._isInitialized=!t,e._initializeCallbacks=[],n.forEach(function(e){return e(t)})};return this._isInitialized?t():(n.push(t),void(1===n.length&&this._writable.readFile(Ei,"utf8",Tt("r"),function(t,n){if(t){if(t.errno!==ge.ENOENT)return r(t)}else e._deleteLog=n;e._reparseDeletionLog(),r()})))},e.prototype.isReadOnly=function(){return!1},e.prototype.supportsSynch=function(){return this._readable.supportsSynch()&&this._writable.supportsSynch()},e.prototype.supportsLinks=function(){return!1},e.prototype.supportsProps=function(){return this._readable.supportsProps()&&this._writable.supportsProps()},e.prototype.getDeletionLog=function(){return this._deleteLog},e.prototype.restoreDeletionLog=function(t){this._deleteLog=t,this._reparseDeletionLog(),this.updateLog("")},e.prototype.rename=function(t,e,n){var r=this;if(this.checkInitAsync(n)&&!this.checkPathAsync(t,n)&&!this.checkPathAsync(e,n))return t===Ei||e===Ei?n(me.EPERM("Cannot rename deletion log.")):t===e?n():void this.stat(t,!1,function(i,o){return i?n(i):r.stat(e,!1,function(i,s){function a(r){var i=r.shift();if(!i)return n();var o=ye.resolve(t,i),s=ye.resolve(e,i);c.rename(o,s,function(t){return t?n(t):void a(r)})}var c=r,u=511;if(o.isDirectory()){if(i)return i.errno!==ge.ENOENT?n(i):r._writable.exists(t,function(i){return i?r._writable.rename(t,e,n):void r._writable.mkdir(e,u,function(e){return e?n(e):void r._readable.readdir(t,function(t,e){return t?n():void a(e)})})});if(u=s.mode,!s.isDirectory())return n(me.ENOTDIR(e));r.readdir(e,function(i,o){return o&&o.length?n(me.ENOTEMPTY(e)):void r._readable.readdir(t,function(t,e){return t?n():void a(e)})})}return s&&s.isDirectory()?n(me.EISDIR(e)):void r.readFile(t,null,Tt("r"),function(i,s){return i?n(i):r.writeFile(e,s,null,Tt("w"),o.mode,function(e){return e?n(e):r.unlink(t,n)})})})})},e.prototype.renameSync=function(t,e){var n=this;if(this.checkInitialized(),this.checkPath(t),this.checkPath(e),t===Ei||e===Ei)throw me.EPERM("Cannot rename deletion log.");var r=this.statSync(t,!1);if(r.isDirectory()){if(t===e)return;var i=511;if(this.existsSync(e)){var o=this.statSync(e,!1);if(i=o.mode,!o.isDirectory())throw me.ENOTDIR(e);if(this.readdirSync(e).length>0)throw me.ENOTEMPTY(e)}this._writable.existsSync(t)?this._writable.renameSync(t,e):this._writable.existsSync(e)||this._writable.mkdirSync(e,i),this._readable.existsSync(t)&&this._readable.readdirSync(t).forEach(function(r){n.renameSync(ye.resolve(t,r),ye.resolve(e,r))})}else{if(this.existsSync(e)&&this.statSync(e,!1).isDirectory())throw me.EISDIR(e);this.writeFileSync(e,this.readFileSync(t,null,Tt("r")),null,Tt("w"),r.mode)}t!==e&&this.existsSync(t)&&this.unlinkSync(t)},e.prototype.stat=function(t,e,n){var r=this;this.checkInitAsync(n)&&this._writable.stat(t,e,function(i,o){i&&i.errno===ge.ENOENT?(r._deletedFiles[t]&&n(me.ENOENT(t)),r._readable.stat(t,e,function(t,e){e&&(e=e.clone(),e.mode=Lt(e.mode)),n(t,e)})):n(i,o)})},e.prototype.statSync=function(t,e){this.checkInitialized();try{return this._writable.statSync(t,e)}catch(r){if(this._deletedFiles[t])throw me.ENOENT(t);var n=this._readable.statSync(t,e).clone();return n.mode=Lt(n.mode),n}},e.prototype.open=function(t,e,n,r){var i=this;this.checkInitAsync(r)&&!this.checkPathAsync(t,r)&&this.stat(t,!1,function(o,s){if(s)switch(e.pathExistsAction()){case we.TRUNCATE_FILE:return i.createParentDirectoriesAsync(t,function(o){return o?r(o):void i._writable.open(t,e,n,r)});case we.NOP:return i._writable.exists(t,function(o){o?i._writable.open(t,e,n,r):(s=s.clone(),s.mode=n,i._readable.readFile(t,null,Tt("r"),function(n,o){if(n)return r(n);s.size===-1&&(s.size=o.length);var a=new Si(i,t,e,s,o);r(null,a)}))});default:return r(me.EEXIST(t))}else switch(e.pathNotExistsAction()){case we.CREATE_FILE:return i.createParentDirectoriesAsync(t,function(o){return o?r(o):i._writable.open(t,e,n,r)});default:return r(me.ENOENT(t))}})},e.prototype.openSync=function(t,e,n){if(this.checkInitialized(),this.checkPath(t),t===Ei)throw me.EPERM("Cannot open deletion log.");if(this.existsSync(t))switch(e.pathExistsAction()){case we.TRUNCATE_FILE:return this.createParentDirectories(t),this._writable.openSync(t,e,n);case we.NOP:if(this._writable.existsSync(t))return this._writable.openSync(t,e,n);var r=this._readable.readFileSync(t,null,Tt("r")),i=this._readable.statSync(t,!1).clone();return i.mode=n,new Si(this,t,e,i,r);default:throw me.EEXIST(t)}else switch(e.pathNotExistsAction()){case we.CREATE_FILE:return this.createParentDirectories(t),this._writable.openSync(t,e,n);default:throw me.ENOENT(t)}},e.prototype.unlink=function(t,e){var n=this;this.checkInitAsync(e)&&!this.checkPathAsync(t,e)&&this.exists(t,function(r){return r?void n._writable.exists(t,function(r){return r?n._writable.unlink(t,function(r){return r?e(r):void n.exists(t,function(r){r&&n.deletePath(t),e(null)})}):(n.deletePath(t),void e(null))}):e(me.ENOENT(t))})},e.prototype.unlinkSync=function(t){if(this.checkInitialized(),this.checkPath(t),!this.existsSync(t))throw me.ENOENT(t);this._writable.existsSync(t)&&this._writable.unlinkSync(t),this.existsSync(t)&&this.deletePath(t)},e.prototype.rmdir=function(t,e){var n=this;if(this.checkInitAsync(e)){var r=function(){n.readdir(t,function(r,i){return r?e(r):i.length?e(me.ENOTEMPTY(t)):(n.deletePath(t),void e(null))})};this.exists(t,function(i){return i?void n._writable.exists(t,function(i){i?n._writable.rmdir(t,function(i){return i?e(i):void n._readable.exists(t,function(t){t?r():e()})}):r()}):e(me.ENOENT(t))})}},e.prototype.rmdirSync=function(t){if(this.checkInitialized(),!this.existsSync(t))throw me.ENOENT(t);if(this._writable.existsSync(t)&&this._writable.rmdirSync(t),this.existsSync(t)){if(this.readdirSync(t).length>0)throw me.ENOTEMPTY(t);this.deletePath(t)}},e.prototype.mkdir=function(t,e,n){var r=this;this.checkInitAsync(n)&&this.exists(t,function(i){return i?n(me.EEXIST(t)):void r.createParentDirectoriesAsync(t,function(i){return i?n(i):void r._writable.mkdir(t,e,n)})})},e.prototype.mkdirSync=function(t,e){if(this.checkInitialized(),this.existsSync(t))throw me.EEXIST(t);this.createParentDirectories(t),this._writable.mkdirSync(t,e)},e.prototype.readdir=function(t,e){var n=this;this.checkInitAsync(e)&&this.stat(t,!1,function(r,i){return r?e(r):i.isDirectory()?void n._writable.readdir(t,function(r,i){return r&&"ENOENT"!==r.code?e(r):(!r&&i||(i=[]),void n._readable.readdir(t,function(r,o){!r&&o||(o=[]);var s={},a=i.concat(o.filter(function(e){return!n._deletedFiles[t+"/"+e]})).filter(function(t){var e=!s[t];return s[t]=!0,e});e(null,a)}))}):e(me.ENOTDIR(t))})},e.prototype.readdirSync=function(t){var e=this;this.checkInitialized();var n=this.statSync(t,!1);if(!n.isDirectory())throw me.ENOTDIR(t);var r=[];try{r=r.concat(this._writable.readdirSync(t))}catch(t){}try{r=r.concat(this._readable.readdirSync(t).filter(function(n){return!e._deletedFiles[t+"/"+n]}))}catch(t){}var i={};return r.filter(function(t){var e=!i[t];return i[t]=!0,e})},e.prototype.exists=function(t,e){var n=this;this.checkInitialized(),this._writable.exists(t,function(r){return r?e(!0):void n._readable.exists(t,function(r){e(r&&n._deletedFiles[t]!==!0)})})},e.prototype.existsSync=function(t){return this.checkInitialized(),this._writable.existsSync(t)||this._readable.existsSync(t)&&this._deletedFiles[t]!==!0},e.prototype.chmod=function(t,e,n,r){var i=this;this.checkInitAsync(r)&&this.operateOnWritableAsync(t,function(o){return o?r(o):void i._writable.chmod(t,e,n,r)})},e.prototype.chmodSync=function(t,e,n){var r=this;this.checkInitialized(),this.operateOnWritable(t,function(){r._writable.chmodSync(t,e,n)})},e.prototype.chown=function(t,e,n,r,i){var o=this;this.checkInitAsync(i)&&this.operateOnWritableAsync(t,function(s){return s?i(s):void o._writable.chown(t,e,n,r,i)})},e.prototype.chownSync=function(t,e,n,r){var i=this;this.checkInitialized(),this.operateOnWritable(t,function(){i._writable.chownSync(t,e,n,r)})},e.prototype.utimes=function(t,e,n,r){var i=this;this.checkInitAsync(r)&&this.operateOnWritableAsync(t,function(o){return o?r(o):void i._writable.utimes(t,e,n,r)})},e.prototype.utimesSync=function(t,e,n){var r=this;this.checkInitialized(),this.operateOnWritable(t,function(){r._writable.utimesSync(t,e,n)})},e.prototype.deletePath=function(t){this._deletedFiles[t]=!0,this.updateLog("d"+t+"\n")},e.prototype.updateLog=function(t){var e=this;this._deleteLog+=t,this._deleteLogUpdatePending?this._deleteLogUpdateNeeded=!0:(this._deleteLogUpdatePending=!0,this._writable.writeFile(Ei,this._deleteLog,"utf8",Se.getFileFlag("w"),420,function(t){e._deleteLogUpdatePending=!1,t?e._deleteLogError=t:e._deleteLogUpdateNeeded&&(e._deleteLogUpdateNeeded=!1,e.updateLog(""))}))},e.prototype._reparseDeletionLog=function(){var t=this;this._deletedFiles={},this._deleteLog.split("\n").forEach(function(e){t._deletedFiles[e.slice(1)]="d"===e.slice(0,1)})},e.prototype.checkInitialized=function(){if(!this._isInitialized)throw new me(ge.EPERM,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.");if(null!==this._deleteLogError){var t=this._deleteLogError;throw this._deleteLogError=null,t}},e.prototype.checkInitAsync=function(t){if(!this._isInitialized)return t(new me(ge.EPERM,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.")),!1;if(null!==this._deleteLogError){var e=this._deleteLogError;return this._deleteLogError=null,t(e),!1}return!0},e.prototype.checkPath=function(t){if(t===Ei)throw me.EPERM(t)},e.prototype.checkPathAsync=function(t,e){return t===Ei&&(e(me.EPERM(t)),!0)},e.prototype.createParentDirectoriesAsync=function(t,e){function n(t,e){t?(o.push(i),i=ye.dirname(i),s._writable.stat(i,!1,n)):r()}function r(){if(!o.length)return e();var t=o.pop();s._readable.stat(t,!1,function(n,i){return i?void s._writable.mkdir(t,i.mode,function(t){return t?e(t):void r()}):e()})}var i=ye.dirname(t),o=[],s=this;this._writable.stat(i,!1,n)},e.prototype.createParentDirectories=function(t){for(var e=this,n=ye.dirname(t),r=[];!this._writable.existsSync(n);)r.push(n),n=ye.dirname(n);r=r.reverse(),r.forEach(function(t){e._writable.mkdirSync(t,e.statSync(t,!1).mode)})},e.prototype.operateOnWritable=function(t,e){if(!this.existsSync(t))throw me.ENOENT(t);this._writable.existsSync(t)||this.copyToWritable(t),e()},e.prototype.operateOnWritableAsync=function(t,e){var n=this;this.exists(t,function(r){return r?void n._writable.exists(t,function(r){return r?void e():n.copyToWritableAsync(t,e)}):e(me.ENOENT(t))})},e.prototype.copyToWritable=function(t){var e=this.statSync(t,!1);e.isDirectory()?this._writable.mkdirSync(t,e.mode):this.writeFileSync(t,this._readable.readFileSync(t,null,Tt("r")),null,Tt("w"),this.statSync(t,!1).mode)},e.prototype.copyToWritableAsync=function(t,e){var n=this;this.stat(t,!1,function(r,i){return r?e(r):i.isDirectory()?n._writable.mkdir(t,i.mode,e):void n._readable.readFile(t,null,Tt("r"),function(r,o){return r?e(r):void n.writeFile(t,o,null,Tt("w"),i.mode,e)})})},e}(Ce),ki=function(t){function e(e,n){t.call(this,new bi(e,n))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return bi.isAvailable()},e.prototype.initialize=function(e){t.prototype.initialize.call(this,e)},e.prototype.getOverlayedFileSystems=function(){return t.prototype.getFSUnlocked.call(this).getOverlayedFileSystems()},e.prototype.unwrap=function(){return t.prototype.getFSUnlocked.call(this)},e}(wi);!function(t){t[t.CB=0]="CB",t[t.FD=1]="FD",t[t.API_ERROR=2]="API_ERROR",t[t.STATS=3]="STATS",t[t.PROBE=4]="PROBE",t[t.FILEFLAG=5]="FILEFLAG",t[t.BUFFER=6]="BUFFER",t[t.ERROR=7]="ERROR"}(mi||(mi={}));var Ii=function(){this._callbacks={},this._nextId=0};Ii.prototype.toRemoteArg=function(t){var e=this._nextId++;return this._callbacks[e]=t,{type:mi.CB,id:e}},Ii.prototype.toLocalArg=function(t){var e=this._callbacks[t];return delete this._callbacks[t],e};var Oi=function(){this._fileDescriptors={},this._nextId=0};Oi.prototype.toRemoteArg=function(t,e,n,i){var o,s,a=this._nextId++;this._fileDescriptors[a]=t,t.stat(function(c,u){c?i(c):(s=jt(u.toBuffer()),n.isReadable()?t.read(new r(u.size),0,u.size,0,function(t,r,c){t?i(t):(o=jt(c),i(null,{type:mi.FD,id:a,data:o,stat:s,path:e,flag:n.getFlagString()}))}):i(null,{type:mi.FD,id:a,data:new ArrayBuffer(0),stat:s,path:e,flag:n.getFlagString()}))})},Oi.prototype.applyFdAPIRequest=function(t,e){var n=this,r=t.args[0];this._applyFdChanges(r,function(i,o){i?e(i):o[t.method](function(i){"close"===t.method&&delete n._fileDescriptors[r.id],e(i)})})},Oi.prototype._applyFdChanges=function(t,e){var n=this._fileDescriptors[t.id],r=zt(t.data),i=ke.fromBuffer(zt(t.stat)),o=Se.getFileFlag(t.flag);o.isWriteable()?n.write(r,0,r.length,o.isAppendable()?n.getPos():0,function(t){function s(){n.stat(function(t,r){t?e(t):r.mode!==i.mode?n.chmod(i.mode,function(t){e(t,n)}):e(t,n)})}t?e(t):o.isAppendable()?s():n.truncate(r.length,function(){s()})}):e(null,n)};var Fi=function(t){function e(e,n,r,i,o,s){t.call(this,e,n,r,i,s),this._remoteFdId=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getRemoteFdId=function(){return this._remoteFdId},e.prototype.toRemoteArg=function(){return{type:mi.FD,id:this._remoteFdId,data:jt(this.getBuffer()),stat:jt(this.getStats().toBuffer()),path:this.getPath(),flag:this.getFlag().getFlagString()}},e.prototype.sync=function(t){this._syncClose("sync",t)},e.prototype.close=function(t){this._syncClose("close",t)},e.prototype._syncClose=function(t,e){var n=this;this.isDirty()?this._fs.syncClose(t,this,function(t){t||n.resetDirty(),e(t)}):e()},e}(Be),Ri=function(t){function e(e){var n=this;t.call(this),this._callbackConverter=new Ii,this._isInitialized=!1,this._isReadOnly=!1,this._supportLinks=!1,this._supportProps=!1,this._worker=e,this._worker.addEventListener("message",function(t){var e=t.data;if(Ht(e)){var r,i=e.args,o=new Array(i.length);for(r=0;r<o.length;r++)o[r]=n._argRemote2Local(i[r]);n._callbackConverter.toLocalArg(e.cbId).apply(null,o)}})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return"undefined"!=typeof importScripts||"undefined"!=typeof Worker},e.attachRemoteListener=function(t){function e(t,e,n){switch(typeof t){case"object":t instanceof ke?n(null,Ct(t)):t instanceof me?n(null,xt(t)):t instanceof Me?n(null,i.toRemoteArg(t,e[0],e[1],n)):t instanceof Se?n(null,Mt(t)):t instanceof r?n(null,qt(t)):t instanceof Error?n(null,At(t)):n(null,t);break;default:n(null,t)}}function n(n,r){if(!n)return n;switch(typeof n){case"object":if("number"!=typeof n.type)return n;var i=n;switch(i.type){case mi.CB:var o=n.id;return function(){function n(e){u>0&&(u=-1,s={browserfsMessage:!0,cbId:o,args:[xt(e)]},t.postMessage(s))}var i,s,a=arguments,c=new Array(arguments.length),u=arguments.length;for(i=0;i<arguments.length;i++)!function(i,a){e(a,r,function(e,r){c[i]=r,e?n(e):0===--u&&(s={browserfsMessage:!0,cbId:o,args:c},t.postMessage(s))})}(i,a[i]);0===arguments.length&&(s={browserfsMessage:!0,cbId:o,args:c},t.postMessage(s))};case mi.API_ERROR:return Dt(i);case mi.STATS:return Ut(i);case mi.FILEFLAG:return Bt(i);case mi.BUFFER:return Vt(i);case mi.ERROR:return Pt(i);default:return n}default:return n}}var i=new Oi;t.addEventListener("message",function(e){var r=e.data;if(Wt(r)){var o=r.args,s=new Array(o.length);switch(r.method){case"close":case"sync":!function(){var e=o[1];i.applyFdAPIRequest(r,function(n){var r={browserfsMessage:!0,cbId:e.id,args:n?[xt(n)]:[]};t.postMessage(r)})}();break;case"probe":!function(){var e=Re.getRootFS(),n=o[1],r={type:mi.PROBE,isReadOnly:e.isReadOnly(),supportsLinks:e.supportsLinks(),supportsProps:e.supportsProps()},i={browserfsMessage:!0,cbId:n.id,args:[r]};t.postMessage(i)}();break;default:for(var a=0;a<o.length;a++)s[a]=n(o[a],s);var c=Re.getRootFS();c[r.method].apply(c,s)}}})},e.prototype.getName=function(){return"WorkerFS"},e.prototype._argLocal2Remote=function(t){if(!t)return t;switch(typeof t){case"object":return t instanceof ke?Ct(t):t instanceof me?xt(t):t instanceof Fi?t.toRemoteArg():t instanceof Se?Mt(t):t instanceof r?qt(t):t instanceof Error?At(t):"Unknown argument";case"function":return this._callbackConverter.toRemoteArg(t);default:return t}},e.prototype.initialize=function(t){var e=this;if(this._isInitialized)t();else{var n={browserfsMessage:!0,method:"probe",args:[this._argLocal2Remote(new r(0)),this._callbackConverter.toRemoteArg(function(n){e._isInitialized=!0,e._isReadOnly=n.isReadOnly,e._supportLinks=n.supportsLinks,e._supportProps=n.supportsProps,t()})]};this._worker.postMessage(n)}},e.prototype.isReadOnly=function(){return this._isReadOnly},e.prototype.supportsSynch=function(){return!1},e.prototype.supportsLinks=function(){return this._supportLinks},e.prototype.supportsProps=function(){return this._supportProps},e.prototype.rename=function(t,e,n){this._rpc("rename",arguments)},e.prototype.stat=function(t,e,n){this._rpc("stat",arguments)},e.prototype.open=function(t,e,n,r){this._rpc("open",arguments)},e.prototype.unlink=function(t,e){this._rpc("unlink",arguments)},e.prototype.rmdir=function(t,e){this._rpc("rmdir",arguments)},e.prototype.mkdir=function(t,e,n){this._rpc("mkdir",arguments)},e.prototype.readdir=function(t,e){this._rpc("readdir",arguments)},e.prototype.exists=function(t,e){this._rpc("exists",arguments)},e.prototype.realpath=function(t,e,n){this._rpc("realpath",arguments)},e.prototype.truncate=function(t,e,n){this._rpc("truncate",arguments)},e.prototype.readFile=function(t,e,n,r){this._rpc("readFile",arguments)},e.prototype.writeFile=function(t,e,n,r,i,o){this._rpc("writeFile",arguments)},e.prototype.appendFile=function(t,e,n,r,i,o){this._rpc("appendFile",arguments)},e.prototype.chmod=function(t,e,n,r){this._rpc("chmod",arguments)},e.prototype.chown=function(t,e,n,r,i){this._rpc("chown",arguments)},e.prototype.utimes=function(t,e,n,r){this._rpc("utimes",arguments)},e.prototype.link=function(t,e,n){this._rpc("link",arguments)},e.prototype.symlink=function(t,e,n,r){this._rpc("symlink",arguments)},e.prototype.readlink=function(t,e){this._rpc("readlink",arguments)},e.prototype.syncClose=function(t,e,n){this._worker.postMessage({browserfsMessage:!0,method:t,args:[e.toRemoteArg(),this._callbackConverter.toRemoteArg(n)]})},e.prototype._argRemote2Local=function(t){if(!t)return t;switch(typeof t){case"object":if("number"!=typeof t.type)return t;var e=t;switch(e.type){case mi.API_ERROR:return Dt(e);case mi.FD:var n=e;return new Fi(this,n.path,Se.getFileFlag(n.flag),ke.fromBuffer(zt(n.stat)),n.id,zt(n.data));case mi.STATS:return Ut(e);case mi.FILEFLAG:return Bt(e);case mi.BUFFER:return Vt(e);case mi.ERROR:return Pt(e);default:return t}default:return t}},e.prototype._rpc=function(t,e){for(var n=this,r=new Array(e.length),i=0;i<e.length;i++)r[i]=n._argLocal2Remote(e[i]);var o={browserfsMessage:!0,method:t,args:r};this._worker.postMessage(o)},e}(Ce),Ni=Zt,Li=Le&&"undefined"!=typeof Blob?Xt:Yt,Ti=function(){this._index={},this.addPath("/",new Di)};Ti.fromListing=function(t){var e=new Ti,n=new Di;e._index["/"]=n;for(var r=[["",t,n]];r.length>0;){var i=void 0,o=r.pop(),s=o[0],a=o[1],c=o[2];for(var u in a)if(a.hasOwnProperty(u)){var f=a[u],h=s+"/"+u;f?(e._index[h]=i=new Di,r.push([h,f,i])):i=new xi(new ke(be.FILE,-1,365)),c&&(c._ls[u]=i)}}return e},Ti.prototype.fileIterator=function(t){var e=this;for(var n in e._index)if(e._index.hasOwnProperty(n))for(var r=e._index[n],i=r.getListing(),o=0;o<i.length;o++){var s=r.getItem(i[o]);Qt(s)&&t(s.getData())}},Ti.prototype.addPath=function(t,e){if(!e)throw new Error("Inode must be specified");if("/"!==t[0])throw new Error("Path must be absolute, got: "+t);if(this._index.hasOwnProperty(t))return this._index[t]===e;var n=this._split_path(t),r=n[0],i=n[1],o=this._index[r];return!(void 0===o&&"/"!==t&&(o=new Di,!this.addPath(r,o)))&&(!("/"!==t&&!o.addItem(i,e))&&($t(e)&&(this._index[t]=e),!0))},Ti.prototype.addPathFast=function(t,e){var n=t.lastIndexOf("/"),r=0===n?"/":t.substring(0,n),i=t.substring(n+1),o=this._index[r];return void 0===o&&(o=new Di,this.addPathFast(r,o)),!!o.addItem(i,e)&&(e.isDir()&&(this._index[t]=e),!0)},Ti.prototype.removePath=function(t){var e=this,n=this._split_path(t),r=n[0],i=n[1],o=this._index[r];if(void 0===o)return null;var s=o.remItem(i);if(null===s)return null;if($t(s)){for(var a=s.getListing(),c=0;c<a.length;c++)e.removePath(t+"/"+a[c]);"/"!==t&&delete this._index[t]}return s},Ti.prototype.ls=function(t){var e=this._index[t];return void 0===e?null:e.getListing()},Ti.prototype.getInode=function(t){var e=this._split_path(t),n=e[0],r=e[1],i=this._index[n];return void 0===i?null:n===t?i:i.getItem(r)},Ti.prototype._split_path=function(t){var e=ye.dirname(t),n=t.substr(e.length+("/"===e?0:1));return[e,n]};var xi=function(t){this.data=t};xi.prototype.isFile=function(){return!0},xi.prototype.isDir=function(){return!1},xi.prototype.getData=function(){return this.data},xi.prototype.setData=function(t){this.data=t};var Di=function(t){void 0===t&&(t=null),this.data=t,this._ls={}};Di.prototype.isFile=function(){return!1},Di.prototype.isDir=function(){return!0},Di.prototype.getData=function(){return this.data},Di.prototype.getStats=function(){return new ke(be.DIRECTORY,4096,365)},Di.prototype.getListing=function(){return Object.keys(this._ls)},Di.prototype.getItem=function(t){var e=this._ls[t];return e?e:null},Di.prototype.addItem=function(t,e){return!(t in this._ls)&&(this._ls[t]=e,!0)},Di.prototype.remItem=function(t){var e=this._ls[t];return void 0===e?null:(delete this._ls[t],e)};var Ai=function(t){function e(e,n){void 0===n&&(n=""),t.call(this),e||(e="index.json"),n.length>0&&"/"!==n.charAt(n.length-1)&&(n+="/"),this.prefixUrl=n;var r=null;if("string"==typeof e){if(r=this._requestFileSync(e,"json"),!r)throw new Error("Unable to find listing at URL: ${listingUrlOrObj}")}else r=e;this._index=Ti.fromListing(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return"undefined"!=typeof XMLHttpRequest&&null!==XMLHttpRequest},e.prototype.empty=function(){this._index.fileIterator(function(t){t.fileData=null})},e.prototype._requestFileSizeAsync=function(t,e){Jt(this.getXhrPath(t),e)},e.prototype._requestFileSizeSync=function(t){return Gt(this.getXhrPath(t))},e.prototype.getName=function(){return"XmlHttpRequest"},e.prototype.diskSpace=function(t,e){e(0,0)},e.prototype.isReadOnly=function(){return!0},e.prototype.supportsLinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!0},e.prototype.preloadFile=function(t,e){var n=this._index.getInode(t);if(!Qt(n))throw me.EISDIR(t);if(null===n)throw me.ENOENT(t);var r=n.getData();r.size=e.length,r.fileData=e},e.prototype.stat=function(t,e,n){var r=this._index.getInode(t);if(null===r)return n(me.ENOENT(t));var i;Qt(r)?(i=r.getData(),i.size<0?this._requestFileSizeAsync(t,function(t,e){return t?n(t):(i.size=e,void n(null,i.clone()))}):n(null,i.clone())):$t(r)?(i=r.getStats(),n(null,i)):n(me.FileError(ge.EINVAL,t))},e.prototype.statSync=function(t,e){var n=this._index.getInode(t);if(null===n)throw me.ENOENT(t);var r;if(Qt(n))r=n.getData(),r.size<0&&(r.size=this._requestFileSizeSync(t));else{if(!$t(n))throw me.FileError(ge.EINVAL,t);r=n.getStats()}return r},e.prototype.open=function(t,e,n,r){if(e.isWriteable())return r(new me(ge.EPERM,t));var i=this,o=this._index.getInode(t);if(null===o)return r(me.ENOENT(t));if(!Qt(o))return r(me.EISDIR(t));var s=o.getData();switch(e.pathExistsAction()){case we.THROW_EXCEPTION:case we.TRUNCATE_FILE:return r(me.EEXIST(t));case we.NOP:if(s.fileData)return r(null,new je(i,t,e,s.clone(),s.fileData));this._requestFileAsync(t,"buffer",function(n,o){return n?r(n):(s.size=o.length,s.fileData=o,r(null,new je(i,t,e,s.clone(),o)))});break;default:return r(new me(ge.EINVAL,"Invalid FileMode object."))}},e.prototype.openSync=function(t,e,n){if(e.isWriteable())throw new me(ge.EPERM,t);var r=this._index.getInode(t);if(null===r)throw me.ENOENT(t);if(!Qt(r))throw me.EISDIR(t);var i=r.getData();switch(e.pathExistsAction()){case we.THROW_EXCEPTION:case we.TRUNCATE_FILE:throw me.EEXIST(t);case we.NOP:if(i.fileData)return new je(this,t,e,i.clone(),i.fileData);var o=this._requestFileSync(t,"buffer");return i.size=o.length,i.fileData=o,new je(this,t,e,i.clone(),o);default:throw new me(ge.EINVAL,"Invalid FileMode object.")}},e.prototype.readdir=function(t,e){try{e(null,this.readdirSync(t))}catch(t){e(t)}},e.prototype.readdirSync=function(t){var e=this._index.getInode(t);if(null===e)throw me.ENOENT(t);if($t(e))return e.getListing();throw me.ENOTDIR(t)},e.prototype.readFile=function(t,e,n,r){var i=r;this.open(t,n,420,function(t,n){if(t)return r(t);r=function(t,e){n.close(function(n){return t||(t=n),i(t,e)})};var o=n,s=o.getBuffer();null===e?r(t,w(s)):te(s,e,r)})},e.prototype.readFileSync=function(t,e,n){var r=this.openSync(t,n,420);try{var i=r,o=i.getBuffer();return null===e?w(o):o.toString(e)}finally{r.closeSync()}},e.prototype.getXhrPath=function(t){return"/"===t.charAt(0)&&(t=t.slice(1)),this.prefixUrl+t},e.prototype._requestFileAsync=function(t,e,n){Ni(this.getXhrPath(t),e,n)},e.prototype._requestFileSync=function(t,e){return Li(this.getXhrPath(t),e)},e}(Ce),Pi=function(){};Pi.str2byte=function(t,e){for(var n=t.length>e.length?e.length:t.length,r=0;r<n;r++){var i=t.charCodeAt(r);if(i>127){var o=Pi.extendedChars.indexOf(t.charAt(r));o>-1&&(i=o+128)}e[i]=r}return n},Pi.byte2str=function(t){for(var e=new Array(t.length),n=0;n<t.length;n++){var r=t[n];r>127?e[n]=Pi.extendedChars[r-128]:e[n]=String.fromCharCode(r)}return e.join("")},Pi.byteLength=function(t){return t.length},Pi.extendedChars=["Ç","ü","é","â","ä","à","å","ç","ê","ë","è","ï","î","ì","Ä","Å","É","æ","Æ","ô","ö","ò","û","ù","ÿ","Ö","Ü","ø","£","Ø","×","ƒ","á","í","ó","ú","ñ","Ñ","ª","º","¿","®","¬","½","¼","¡","«","»","_","_","_","¦","¦","Á","Â","À","©","¦","¦","+","+","¢","¥","+","+","-","-","+","-","+","ã","Ã","+","+","-","-","¦","-","+","¤","ð","Ð","Ê","Ë","È","i","Í","Î","Ï","+","+","_","_","¦","Ì","_","Ó","ß","Ô","Ò","õ","Õ","µ","þ","Þ","Ú","Û","Ù","ý","Ý","¯","´","­","±","_","¾","¶","§","÷","¸","°","¨","·","¹","³","²","_"," "];var Ci,Ui=n(23).inflateRaw,Mi={};!function(t){t[t.MSDOS=0]="MSDOS",t[t.AMIGA=1]="AMIGA",t[t.OPENVMS=2]="OPENVMS",t[t.UNIX=3]="UNIX",t[t.VM_CMS=4]="VM_CMS",t[t.ATARI_ST=5]="ATARI_ST",t[t.OS2_HPFS=6]="OS2_HPFS",t[t.MAC=7]="MAC",t[t.Z_SYSTEM=8]="Z_SYSTEM",t[t.CP_M=9]="CP_M",t[t.NTFS=10]="NTFS",t[t.MVS=11]="MVS",t[t.VSE=12]="VSE",t[t.ACORN_RISC=13]="ACORN_RISC",t[t.VFAT=14]="VFAT",t[t.ALT_MVS=15]="ALT_MVS",t[t.BEOS=16]="BEOS",t[t.TANDEM=17]="TANDEM",t[t.OS_400=18]="OS_400",t[t.OSX=19]="OSX"}(Ci||(Ci={}));var Bi;!function(t){t[t.STORED=0]="STORED",t[t.SHRUNK=1]="SHRUNK",t[t.REDUCED_1=2]="REDUCED_1",t[t.REDUCED_2=3]="REDUCED_2",t[t.REDUCED_3=4]="REDUCED_3",t[t.REDUCED_4=5]="REDUCED_4",t[t.IMPLODE=6]="IMPLODE",t[t.DEFLATE=8]="DEFLATE",t[t.DEFLATE64=9]="DEFLATE64",t[t.TERSE_OLD=10]="TERSE_OLD",t[t.BZIP2=12]="BZIP2",t[t.LZMA=14]="LZMA",t[t.TERSE_NEW=18]="TERSE_NEW",t[t.LZ77=19]="LZ77",t[t.WAVPACK=97]="WAVPACK",t[t.PPMD=98]="PPMD"}(Bi||(Bi={}));var ji=function(t){if(this.data=t,67324752!==t.readUInt32LE(0))throw new me(ge.EINVAL,"Invalid Zip file: Local file header has invalid signature: "+this.data.readUInt32LE(0))};ji.prototype.versionNeeded=function(){return this.data.readUInt16LE(4)},ji.prototype.flags=function(){return this.data.readUInt16LE(6)},ji.prototype.compressionMethod=function(){return this.data.readUInt16LE(8)},ji.prototype.lastModFileTime=function(){return ee(this.data.readUInt16LE(10),this.data.readUInt16LE(12))},ji.prototype.rawLastModFileTime=function(){return this.data.readUInt32LE(10)},ji.prototype.crc32=function(){return this.data.readUInt32LE(14)},ji.prototype.fileNameLength=function(){return this.data.readUInt16LE(26)},ji.prototype.extraFieldLength=function(){return this.data.readUInt16LE(28)},ji.prototype.fileName=function(){return ne(this.data,this.useUTF8(),30,this.fileNameLength())},ji.prototype.extraField=function(){var t=30+this.fileNameLength();return this.data.slice(t,t+this.extraFieldLength())},ji.prototype.totalSize=function(){return 30+this.fileNameLength()+this.extraFieldLength()},ji.prototype.useUTF8=function(){return 2048===(2048&this.flags())};var zi=function(t,e,n){this.header=t,this.record=e,this.data=n};zi.prototype.decompress=function(){var t=this.header.compressionMethod(),e=Mi[t];if(e)return e(this.data,this.record.compressedSize(),this.record.uncompressedSize(),this.record.flag());var n=Bi[t];throw n||(n="Unknown: "+t),new me(ge.EINVAL,"Invalid compression method on file '"+this.header.fileName()+"': "+n)},zi.prototype.getHeader=function(){return this.header},zi.prototype.getRecord=function(){return this.record},zi.prototype.getRawData=function(){return this.data};var qi=function(t){this.data=t};qi.prototype.crc32=function(){return this.data.readUInt32LE(0)},qi.prototype.compressedSize=function(){return this.data.readUInt32LE(4)},qi.prototype.uncompressedSize=function(){return this.data.readUInt32LE(8)};var Vi=function(t){if(this.data=t,134630224!==this.data.readUInt32LE(0))throw new me(ge.EINVAL,"Invalid archive extra data record signature: "+this.data.readUInt32LE(0))};Vi.prototype.length=function(){return this.data.readUInt32LE(4)},Vi.prototype.extraFieldData=function(){return this.data.slice(8,8+this.length())};var Wi=function(t){if(this.data=t,84233040!==this.data.readUInt32LE(0))throw new me(ge.EINVAL,"Invalid digital signature signature: "+this.data.readUInt32LE(0))};Wi.prototype.size=function(){return this.data.readUInt16LE(4)},Wi.prototype.signatureData=function(){return this.data.slice(6,6+this.size())};var Hi=function(t,e){if(this.zipData=t,this.data=e,33639248!==this.data.readUInt32LE(0))throw new me(ge.EINVAL,"Invalid Zip file: Central directory record has invalid signature: "+this.data.readUInt32LE(0));this._filename=this.produceFilename()};Hi.prototype.versionMadeBy=function(){return this.data.readUInt16LE(4)},Hi.prototype.versionNeeded=function(){return this.data.readUInt16LE(6)},Hi.prototype.flag=function(){return this.data.readUInt16LE(8)},Hi.prototype.compressionMethod=function(){return this.data.readUInt16LE(10)},Hi.prototype.lastModFileTime=function(){return ee(this.data.readUInt16LE(12),this.data.readUInt16LE(14))},Hi.prototype.rawLastModFileTime=function(){return this.data.readUInt32LE(12)},Hi.prototype.crc32=function(){return this.data.readUInt32LE(16)},Hi.prototype.compressedSize=function(){return this.data.readUInt32LE(20)},Hi.prototype.uncompressedSize=function(){return this.data.readUInt32LE(24)},Hi.prototype.fileNameLength=function(){return this.data.readUInt16LE(28)},Hi.prototype.extraFieldLength=function(){return this.data.readUInt16LE(30)},Hi.prototype.fileCommentLength=function(){return this.data.readUInt16LE(32)},Hi.prototype.diskNumberStart=function(){return this.data.readUInt16LE(34)},Hi.prototype.internalAttributes=function(){return this.data.readUInt16LE(36)},Hi.prototype.externalAttributes=function(){return this.data.readUInt32LE(38)},Hi.prototype.headerRelativeOffset=function(){return this.data.readUInt32LE(42)},Hi.prototype.produceFilename=function(){var t=ne(this.data,this.useUTF8(),46,this.fileNameLength());return t.replace(/\\/g,"/")},Hi.prototype.fileName=function(){return this._filename},Hi.prototype.rawFileName=function(){return this.data.slice(46,46+this.fileNameLength())},Hi.prototype.extraField=function(){var t=44+this.fileNameLength();return this.data.slice(t,t+this.extraFieldLength())},Hi.prototype.fileComment=function(){var t=46+this.fileNameLength()+this.extraFieldLength();return ne(this.data,this.useUTF8(),t,this.fileCommentLength())},Hi.prototype.rawFileComment=function(){var t=46+this.fileNameLength()+this.extraFieldLength();return this.data.slice(t,t+this.fileCommentLength())},Hi.prototype.totalSize=function(){return 46+this.fileNameLength()+this.extraFieldLength()+this.fileCommentLength()},Hi.prototype.isDirectory=function(){var t=this.fileName();return!!(16&this.externalAttributes())||"/"===t.charAt(t.length-1)},Hi.prototype.isFile=function(){return!this.isDirectory()},Hi.prototype.useUTF8=function(){return 2048===(2048&this.flag())},Hi.prototype.isEncrypted=function(){return 1===(1&this.flag())},Hi.prototype.getFileData=function(){var t=this.headerRelativeOffset(),e=new ji(this.zipData.slice(t));return new zi(e,this,this.zipData.slice(t+e.totalSize()))},Hi.prototype.getData=function(){return this.getFileData().decompress()},Hi.prototype.getRawData=function(){return this.getFileData().getRawData()},Hi.prototype.getStats=function(){return new ke(be.FILE,this.uncompressedSize(),365,new Date,this.lastModFileTime())};var Zi=function(t){if(this.data=t,101010256!==this.data.readUInt32LE(0))throw new me(ge.EINVAL,"Invalid Zip file: End of central directory record has invalid signature: "+this.data.readUInt32LE(0))};Zi.prototype.diskNumber=function(){return this.data.readUInt16LE(4)},Zi.prototype.cdDiskNumber=function(){return this.data.readUInt16LE(6)},Zi.prototype.cdDiskEntryCount=function(){return this.data.readUInt16LE(8)},Zi.prototype.cdTotalEntryCount=function(){return this.data.readUInt16LE(10)},Zi.prototype.cdSize=function(){return this.data.readUInt32LE(12)},Zi.prototype.cdOffset=function(){return this.data.readUInt32LE(16)},Zi.prototype.cdZipCommentLength=function(){return this.data.readUInt16LE(20)},Zi.prototype.cdZipComment=function(){return ne(this.data,!0,22,this.cdZipCommentLength())},Zi.prototype.rawCdZipComment=function(){return this.data.slice(22,22+this.cdZipCommentLength())};var Yi=function(t,e,n,r){this.index=t,this.directoryEntries=e,this.eocd=n,this.data=r},Xi=function(t){function e(e,n){void 0===n&&(n=""),t.call(this),this.name=n,this._index=new Ti,this._directoryEntries=[],this._eocd=null,e instanceof Yi?(this._index=e.index,this._directoryEntries=e.directoryEntries,this._eocd=e.eocd,this.data=e.data):(this.data=e,this.populateIndex())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.RegisterDecompressionMethod=function(t,e){Mi[t]=e},e.computeIndex=function(t,n){var r=new Ti,i=e.getEOCD(t);if(i.diskNumber()!==i.cdDiskNumber())throw new me(ge.EINVAL,"ZipFS does not support spanned zip files.");var o=i.cdOffset();if(4294967295===o)throw new me(ge.EINVAL,"ZipFS does not support Zip64.");var s=o+i.cdSize();e.computeIndexResponsive(t,r,o,s,n,[],i)},e.getEOCD=function(t){for(var e=22,n=Math.min(e+65535,t.length-1),r=e;r<n;r++)if(101010256===t.readUInt32LE(t.length-r))return new Zi(t.slice(t.length-r));throw new me(ge.EINVAL,"Invalid ZIP file: Could not locate End of Central Directory signature.")},e.addToIndex=function(t,e){var n=t.fileName();if("/"===n.charAt(0))throw new Error("WHY IS THIS ABSOLUTE");"/"===n.charAt(n.length-1)&&(n=n.substr(0,n.length-1)),t.isDirectory()?e.addPathFast("/"+n,new Di(t)):e.addPathFast("/"+n,new xi(t))},e.computeIndexResponsive=function(t,n,r,i,o,s,a){if(r<i){for(var c=0;c++<200&&r<i;){var u=new Hi(t,t.slice(r));e.addToIndex(u,n),r+=u.totalSize(),s.push(u)}setImmediate(function(){e.computeIndexResponsive(t,n,r,i,o,s,a)})}else o(new Yi(n,s,a,t))},e.prototype.getName=function(){return"ZipFS"+(""!==this.name?" "+this.name:"")},e.prototype.getCentralDirectoryEntry=function(t){var e=this._index.getInode(t);if(null===e)throw me.ENOENT(t);if(Qt(e))return e.getData();if($t(e))return e.getData();throw me.EPERM("Invalid inode: "+e)},e.prototype.getCentralDirectoryEntryAt=function(t){var e=this._directoryEntries[t];if(!e)throw new RangeError("Invalid directory index: "+t+".");return e},e.prototype.getNumberOfCentralDirectoryEntries=function(){return this._directoryEntries.length},e.prototype.getEndOfCentralDirectory=function(){return this._eocd},e.prototype.diskSpace=function(t,e){e(this.data.length,0)},e.prototype.isReadOnly=function(){return!0},e.prototype.supportsLinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!0},e.prototype.statSync=function(t,e){var n=this._index.getInode(t);if(null===n)throw me.ENOENT(t);var r;if(Qt(n))r=n.getData().getStats();else{if(!$t(n))throw new me(ge.EINVAL,"Invalid inode.");r=n.getStats()}return r},e.prototype.openSync=function(t,e,n){if(e.isWriteable())throw new me(ge.EPERM,t);var r=this._index.getInode(t);if(!r)throw me.ENOENT(t);if(!Qt(r))throw me.EISDIR(t);var i=r.getData(),o=i.getStats();switch(e.pathExistsAction()){case we.THROW_EXCEPTION:case we.TRUNCATE_FILE:throw me.EEXIST(t);case we.NOP:return new je(this,t,e,o,i.getData());default:throw new me(ge.EINVAL,"Invalid FileMode object.")}},e.prototype.readdirSync=function(t){var e=this._index.getInode(t);if(e){if($t(e))return e.getListing();throw me.ENOTDIR(t)}throw me.ENOENT(t)},e.prototype.readFileSync=function(t,e,n){var r=this.openSync(t,n,420);try{var i=r,o=i.getBuffer();return null===e?w(o):o.toString(e)}finally{r.closeSync()}},e.prototype.populateIndex=function(){var t=this,n=this._eocd=e.getEOCD(this.data);if(n.diskNumber()!==n.cdDiskNumber())throw new me(ge.EINVAL,"ZipFS does not support spanned zip files.");var r=n.cdOffset();if(4294967295===r)throw new me(ge.EINVAL,"ZipFS does not support Zip64.");for(var i=r+n.cdSize();r<i;){var o=new Hi(t.data,t.data.slice(r));r+=o.totalSize(),e.addToIndex(o,t._index),t._directoryEntries.push(o)}},e}(Ue);Xi.CompressionMethod=Bi,Xi.RegisterDecompressionMethod(Bi.DEFLATE,function(t,e,n){return g(Ui(t.slice(0,e),{chunkSize:n}))}),Xi.RegisterDecompressionMethod(Bi.STORED,function(t,e,n){return w(t,0,n)});var Ki="IEEE_P1282",Gi=function(t){this._data=t};Gi.prototype.type=function(){return this._data[0]},Gi.prototype.standardIdentifier=function(){return re(this._data,1,5)},Gi.prototype.version=function(){return this._data[6]},Gi.prototype.data=function(){return this._data.slice(7,2048)};var Ji=function(t){function e(e){t.call(this,e),this._root=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.systemIdentifier=function(){return this._getString32(8)},e.prototype.volumeIdentifier=function(){return this._getString32(40)},e.prototype.volumeSpaceSize=function(){return this._data.readUInt32LE(80)},e.prototype.volumeSetSize=function(){return this._data.readUInt16LE(120)},e.prototype.volumeSequenceNumber=function(){return this._data.readUInt16LE(124)},e.prototype.logicalBlockSize=function(){return this._data.readUInt16LE(128)},e.prototype.pathTableSize=function(){return this._data.readUInt32LE(132)},e.prototype.locationOfTypeLPathTable=function(){return this._data.readUInt32LE(140)},e.prototype.locationOfOptionalTypeLPathTable=function(){return this._data.readUInt32LE(144)},e.prototype.locationOfTypeMPathTable=function(){return this._data.readUInt32BE(148)},e.prototype.locationOfOptionalTypeMPathTable=function(){return this._data.readUInt32BE(152)},e.prototype.rootDirectoryEntry=function(t){return null===this._root&&(this._root=this._constructRootDirectoryRecord(this._data.slice(156)),this._root.rootCheckForRockRidge(t)),this._root},e.prototype.volumeSetIdentifier=function(){return this._getString(190,128)},e.prototype.publisherIdentifier=function(){return this._getString(318,128)},e.prototype.dataPreparerIdentifier=function(){return this._getString(446,128)},e.prototype.applicationIdentifier=function(){return this._getString(574,128)},e.prototype.copyrightFileIdentifier=function(){return this._getString(702,38)},e.prototype.abstractFileIdentifier=function(){return this._getString(740,36)},e.prototype.bibliographicFileIdentifier=function(){return this._getString(776,37)},e.prototype.volumeCreationDate=function(){return oe(this._data,813)},e.prototype.volumeModificationDate=function(){return oe(this._data,830)},e.prototype.volumeExpirationDate=function(){return oe(this._data,847)},e.prototype.volumeEffectiveDate=function(){return oe(this._data,864)},e.prototype.fileStructureVersion=function(){return this._data[881]},e.prototype.applicationUsed=function(){return this._data.slice(883,1395)},e.prototype.reserved=function(){return this._data.slice(1395,2048)},e.prototype._getString32=function(t){return this._getString(t,32)},e}(Gi),Qi=function(t){function e(e){if(t.call(this,e),1!==this.type())throw new me(ge.EIO,"Invalid primary volume descriptor.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.name=function(){return"ISO9660"},e.prototype._constructRootDirectoryRecord=function(t){return new eo(t,-1)},e.prototype._getString=function(t,e){return this._getString(t,e)},e}(Ji),$i=function(t){function e(e){if(t.call(this,e),2!==this.type())throw new me(ge.EIO,"Invalid supplementary volume descriptor.");var n=this.escapeSequence(),r=n[2];if(37!==n[0]||47!==n[1]||64!==r&&67!==r&&69!==r)throw new me(ge.EIO,"Unrecognized escape sequence for SupplementaryVolumeDescriptor: "+n.toString())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.name=function(){return"Joliet"},e.prototype.escapeSequence=function(){return this._data.slice(88,120)},e.prototype._constructRootDirectoryRecord=function(t){return new no(t,-1)},e.prototype._getString=function(t,e){return ie(this._data,t,e)},e}(Ji),to=function(t,e){this._suEntries=null,this._fileOrDir=null,this._data=t,this._rockRidgeOffset=e};to.prototype.hasRockRidge=function(){return this._rockRidgeOffset>-1},to.prototype.getRockRidgeOffset=function(){return this._rockRidgeOffset},to.prototype.rootCheckForRockRidge=function(t){var e=this.getDirectory(t);this._rockRidgeOffset=e.getDotEntry(t)._getRockRidgeOffset(t),this._rockRidgeOffset>-1&&(this._fileOrDir=null)},to.prototype.length=function(){return this._data[0]},to.prototype.extendedAttributeRecordLength=function(){return this._data[1]},to.prototype.lba=function(){return 2048*this._data.readUInt32LE(2)},to.prototype.dataLength=function(){return this._data.readUInt32LE(10)},to.prototype.recordingDate=function(){return se(this._data,18)},to.prototype.fileFlags=function(){return this._data[25]},to.prototype.fileUnitSize=function(){return this._data[26]},to.prototype.interleaveGapSize=function(){return this._data[27]},to.prototype.volumeSequenceNumber=function(){return this._data.readUInt16LE(28)},to.prototype.identifier=function(){return this._getString(33,this._data[32])},to.prototype.fileName=function(t){if(this.hasRockRidge()){var e=this._rockRidgeFilename(t);if(null!==e)return e}var n=this.identifier();if(this.isDirectory(t))return n;var r=n.indexOf(";");return r===-1?n:"."===n[r-1]?n.slice(0,r-1):n.slice(0,r)},to.prototype.isDirectory=function(t){var e=!!(2&this.fileFlags());return!e&&this.hasRockRidge()&&(e=this.getSUEntries(t).filter(function(t){return t instanceof _o}).length>0),e},to.prototype.isSymlink=function(t){return this.hasRockRidge()&&this.getSUEntries(t).filter(function(t){return t instanceof lo}).length>0},to.prototype.getSymlinkPath=function(t){for(var e="",n=this.getSUEntries(t),r=this._getGetString(),i=0;i<n.length;i++){var o=n[i];if(o instanceof lo){for(var s=o.componentRecords(),a=0;a<s.length;a++){var c=s[a],u=c.flags();2&u?e+="./":4&u?e+="../":8&u?e+="/":(e+=c.content(r),1&u||(e+="/"))}if(!o.continueFlag())break}}return e.length>1&&"/"===e[e.length-1]?e.slice(0,e.length-1):e},to.prototype.getFile=function(t){if(this.isDirectory(t))throw new Error("Tried to get a File from a directory.");return null===this._fileOrDir&&(this._fileOrDir=t.slice(this.lba(),this.lba()+this.dataLength())),this._fileOrDir},to.prototype.getDirectory=function(t){if(!this.isDirectory(t))throw new Error("Tried to get a Directory from a file.");return null===this._fileOrDir&&(this._fileOrDir=this._constructDirectory(t)),this._fileOrDir},to.prototype.getSUEntries=function(t){return this._suEntries||this._constructSUEntries(t),this._suEntries},to.prototype._rockRidgeFilename=function(t){var e=this.getSUEntries(t).filter(function(t){return t instanceof go});if(0===e.length||6&e[0].flags())return null;for(var n="",r=this._getGetString(),i=0;i<e.length;i++){var o=e[i];if(n+=o.name(r),!(1&o.flags()))break}return n},to.prototype._constructSUEntries=function(t){var e=33+this._data[32];e%2===1&&e++,e+=this._rockRidgeOffset,this._suEntries=ce(this._data,e,this.length(),t)},to.prototype._getRockRidgeOffset=function(t){this._rockRidgeOffset=0;var e=this.getSUEntries(t);if(e.length>0){var n=e[0];if(n instanceof so&&n.checkBytesPass())for(var r=1;r<e.length;r++){var i=e[r];if(i instanceof fo||i instanceof co&&i.extensionIdentifier()===Ki)return n.bytesSkipped()}}return this._rockRidgeOffset=-1,-1};var eo=function(t){function e(e,n){t.call(this,e,n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._getString=function(t,e){return re(this._data,t,e)},e.prototype._constructDirectory=function(t){return new bo(this,t)},e.prototype._getGetString=function(){return re},e}(to),no=function(t){function e(e,n){t.call(this,e,n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._getString=function(t,e){return ie(this._data,t,e)},e.prototype._constructDirectory=function(t){return new ko(this,t)},e.prototype._getGetString=function(){return ie},e}(to),ro=function(t){this._data=t};ro.prototype.signatureWord=function(){return this._data.readUInt16BE(0)},ro.prototype.signatureWordString=function(){return re(this._data,0,2)},ro.prototype.length=function(){return this._data[2]},ro.prototype.suVersion=function(){return this._data[3]};var io=function(t){function e(e){t.call(this,e),this._entries=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.continuationLba=function(){return this._data.readUInt32LE(4)},e.prototype.continuationLbaOffset=function(){return this._data.readUInt32LE(12)},e.prototype.continuationLength=function(){return this._data.readUInt32LE(20)},e.prototype.getEntries=function(t){if(!this._entries){var e=2048*this.continuationLba()+this.continuationLbaOffset();this._entries=ce(t,e,this.continuationLength(),t)}return this._entries},e}(ro),oo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ro),so=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.checkBytesPass=function(){return 190===this._data[4]&&239===this._data[5]},e.prototype.bytesSkipped=function(){return this._data[6]},e}(ro),ao=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ro),co=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.identifierLength=function(){return this._data[4]},e.prototype.descriptorLength=function(){return this._data[5]},e.prototype.sourceLength=function(){return this._data[6]},e.prototype.extensionVersion=function(){return this._data[7]},e.prototype.extensionIdentifier=function(){return re(this._data,8,this.identifierLength())},e.prototype.extensionDescriptor=function(){return re(this._data,8+this.identifierLength(),this.descriptorLength())},e.prototype.extensionSource=function(){return re(this._data,8+this.identifierLength()+this.descriptorLength(),this.sourceLength())},e}(ro),uo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.extensionSequence=function(){return this._data[4]},e}(ro),fo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ro),ho=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.mode=function(){return this._data.readUInt32LE(4)},e.prototype.fileLinks=function(){return this._data.readUInt32LE(12)},e.prototype.uid=function(){return this._data.readUInt32LE(20)},e.prototype.gid=function(){return this._data.readUInt32LE(28)},e.prototype.inode=function(){return this._data.readUInt32LE(36)},e}(ro),po=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.devTHigh=function(){return this._data.readUInt32LE(4)},e.prototype.devTLow=function(){return this._data.readUInt32LE(12)},e}(ro),lo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flags=function(){return this._data[4]},e.prototype.continueFlag=function(){return 1&this.flags()},e.prototype.componentRecords=function(){for(var t=this,e=new Array,n=5;n<this.length();){var r=new yo(t._data.slice(n));e.push(r),n+=r.length()}return e},e}(ro),yo=function(t){this._data=t};yo.prototype.flags=function(){return this._data[0]},yo.prototype.length=function(){return 2+this.componentLength()},yo.prototype.componentLength=function(){return this._data[1]},yo.prototype.content=function(t){return t(this._data,2,this.componentLength())};var go=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flags=function(){return this._data[4]},e.prototype.name=function(t){return t(this._data,5,this.length()-5)},e}(ro),_o=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.childDirectoryLba=function(){return this._data.readUInt32LE(4)},e}(ro),vo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parentDirectoryLba=function(){return this._data.readUInt32LE(4)},e}(ro),wo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ro),mo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flags=function(){return this._data[4]},e.prototype.creation=function(){return 1&this.flags()?this._longFormDates()?oe(this._data,5):se(this._data,5):null},e.prototype.modify=function(){if(2&this.flags()){var t=1&this.flags()?1:0;return this._longFormDates?oe(this._data,5+17*t):se(this._data,5+7*t)}return null},e.prototype.access=function(){if(4&this.flags()){var t=1&this.flags()?1:0;return t+=2&this.flags()?1:0,this._longFormDates?oe(this._data,5+17*t):se(this._data,5+7*t)}return null},e.prototype.backup=function(){if(16&this.flags()){var t=1&this.flags()?1:0;return t+=2&this.flags()?1:0,t+=4&this.flags()?1:0,this._longFormDates?oe(this._data,5+17*t):se(this._data,5+7*t)}return null},e.prototype.expiration=function(){if(32&this.flags()){var t=1&this.flags()?1:0;return t+=2&this.flags()?1:0,t+=4&this.flags()?1:0,t+=16&this.flags()?1:0,this._longFormDates?oe(this._data,5+17*t):se(this._data,5+7*t)}return null},e.prototype.effective=function(){if(64&this.flags()){var t=1&this.flags()?1:0;return t+=2&this.flags()?1:0,t+=4&this.flags()?1:0,t+=16&this.flags()?1:0,t+=32&this.flags()?1:0,this._longFormDates?oe(this._data,5+17*t):se(this._data,5+7*t)}return null},e.prototype._longFormDates=function(){return!!this.flags()},e}(ro),Eo=function(t){function e(e){t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.virtualSizeHigh=function(){return this._data.readUInt32LE(4)},e.prototype.virtualSizeLow=function(){return this._data.readUInt32LE(12)},e.prototype.tableDepth=function(){return this._data[20]},e}(ro),So=function(t,e){var n=this;this._fileList=[],this._fileMap={},this._record=t;var r=t.lba(),i=r+t.dataLength();if(!(2&t.fileFlags())){var o=t.getSUEntries(e).filter(function(t){return t instanceof _o})[0];r=2048*o.childDirectoryLba(),i=1/0}for(;r<i;){var s=e[r];if(0!==s){var a=n._constructDirectoryRecord(e.slice(r)),c=a.fileName(e);"\0"!==c&&""!==c?a.hasRockRidge()&&0!==a.getSUEntries(e).filter(function(t){return t instanceof wo}).length||(n._fileMap[c]=a,n._fileList.push(c)):i===1/0&&(i=r+a.dataLength()),r+=a.length()}else r++}};So.prototype.getRecord=function(t){return this._fileMap[t]},So.prototype.getFileList=function(){return this._fileList},So.prototype.getDotEntry=function(t){return this._constructDirectoryRecord(t.slice(this._record.lba()))};var bo=function(t){function e(e,n){t.call(this,e,n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._constructDirectoryRecord=function(t){return new eo(t,this._record.getRockRidgeOffset())},e}(So),ko=function(t){function e(e,n){t.call(this,e,n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._constructDirectoryRecord=function(t){return new no(t,this._record.getRockRidgeOffset())},e}(So),Io=function(t){function e(e,n){var r=this;void 0===n&&(n=""),t.call(this),this._data=e;for(var i=!1,o=32768,s=new Array;!i;){var a=e.slice(o),c=new Gi(a);switch(c.type()){case 1:s.push(new Qi(a));break;case 2:s.push(new $i(a));break;case 255:i=!0}o+=2048}if(0===s.length)throw new me(ge.EIO,"Unable to find a suitable volume descriptor.");s.forEach(function(t){r._pvd&&2===r._pvd.type()||(r._pvd=t)}),this._root=this._pvd.rootDirectoryEntry(e),this._name=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.isAvailable=function(){return!0},e.prototype.getName=function(){var t="IsoFS"+this._name+"-"+this._pvd.name();return this._root.hasRockRidge()&&(t+="-RockRidge"),t},e.prototype.diskSpace=function(t,e){e(this._data.length,0)},e.prototype.isReadOnly=function(){return!0},e.prototype.supportsLinks=function(){return!1},e.prototype.supportsProps=function(){return!1},e.prototype.supportsSynch=function(){return!0},e.prototype.statSync=function(t,e){var n=this._getDirectoryRecord(t);if(null===n)throw me.ENOENT(t);return this._getStats(t,n)},e.prototype.openSync=function(t,e,n){if(e.isWriteable())throw new me(ge.EPERM,t);var r=this._getDirectoryRecord(t);if(!r)throw me.ENOENT(t);if(r.isSymlink(this._data))return this.openSync(ye.resolve(t,r.getSymlinkPath(this._data)),e,n);if(r.isDirectory(this._data))throw me.EISDIR(t);var i=r.getFile(this._data),o=this._getStats(t,r);switch(e.pathExistsAction()){case we.THROW_EXCEPTION:case we.TRUNCATE_FILE:throw me.EEXIST(t);case we.NOP:return new je(this,t,e,o,i);default:throw new me(ge.EINVAL,"Invalid FileMode object.")}},e.prototype.readdirSync=function(t){var e=this._getDirectoryRecord(t);if(e){if(e.isDirectory(this._data))return e.getDirectory(this._data).getFileList().slice(0);throw me.ENOTDIR(t)}throw me.ENOENT(t)},e.prototype.readFileSync=function(t,e,n){var r=this.openSync(t,n,420);try{var i=r,o=i.getBuffer();return null===e?w(o):o.toString(e)}finally{r.closeSync()}},e.prototype._getDirectoryRecord=function(t){var e=this;if("/"===t)return this._root;for(var n=t.split("/").slice(1),r=this._root,i=0;i<n.length;i++){if(!r.isDirectory(e._data))return null;if(r=r.getDirectory(e._data).getRecord(n[i]),!r)return null}return r},e.prototype._getStats=function(t,e){if(e.isSymlink(this._data)){var n=ye.resolve(t,e.getSymlinkPath(this._data)),r=this._getDirectoryRecord(n);return r?this._getStats(n,r):null}var i=e.dataLength(),o=365,s=e.recordingDate(),a=s,c=s,u=s;if(e.hasRockRidge())for(var f=e.getSUEntries(this._data),h=0;h<f.length;h++){var p=f[h];if(p instanceof ho)o=p.mode();else if(p instanceof mo){var l=p.flags();4&l&&(a=p.access()),2&l&&(c=p.modify()),1&l&&(u=p.creation())}}return o&=365,new ke(e.isDirectory(this._data)?be.DIRECTORY:be.FILE,i,o,a,c,u)},e}(Ue),Oo={AsyncMirror:qe,Dropbox:zr,Emscripten:Vr,FolderAdapter:Wr,HTML5FS:Yr,InMemory:ni,IndexedDB:ci,IsoFS:Io,LocalStorage:hi,MountableFileSystem:pi,OverlayFS:ki,WorkerFS:Ri,XmlHttpRequest:Ai,ZipFS:Xi};if(o.initializeTTYs&&o.initializeTTYs(),"b"!=="ab".substr(-1)&&(String.prototype.substr=function(t){return function(e,n){return e<0&&(e=this.length+e),t.call(this,e,n)}}(String.prototype.substr)),"undefined"==typeof setImmediate){var Fo=_e,Ro=[],No="zero-timeout-message",Lo=function(){if("undefined"!=typeof Fo.importScripts||!Fo.postMessage)return!1;var t=!0,e=Fo.onmessage;return Fo.onmessage=function(){t=!1},Fo.postMessage("","*"),Fo.onmessage=e,t};if(Lo()){Fo.setImmediate=function(t){Ro.push(t),Fo.postMessage(No,"*")};var To=function(t){if(t.source===self&&t.data===No&&(t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,Ro.length>0)){var e=Ro.shift();return e()}};Fo.addEventListener?Fo.addEventListener("message",To,!0):Fo.attachEvent("onmessage",To)}else if(Fo.MessageChannel){var xo=new Fo.MessageChannel;xo.port1.onmessage=function(t){if(Ro.length>0)return Ro.shift()()},Fo.setImmediate=function(t){Ro.push(t),xo.port2.postMessage("")}}else Fo.setImmediate=function(t){return setTimeout(t,0)}}"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&(Uint8Array.prototype.slice||(Uint8Array.prototype.slice=function(t,e){void 0===t&&(t=0),void 0===e&&(e=this.length);var n=this;return t<0&&(t=this.length+t,t<0&&(t=0)),e<0&&(e=this.length+e,e<0&&(e=0)),e<t&&(e=t),new Uint8Array(n.buffer,n.byteOffset+t,e-t)})),e.install=ue,e.registerFileSystem=fe,e.BFSRequire=he,e.initialize=pe,e.EmscriptenFS=Pe,e.FileSystem=Oo,e.Errors=Ee}).call(e,function(){return this}(),n(7),n(41)(t),n(3))},function(t,e,n){(function(t){"use strict";function r(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}function i(e){if(e>K)throw new RangeError("Invalid typed array length");var n=new Uint8Array(e);return n.__proto__=t.prototype,n}function t(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return c(t)}return o(t,e,n)}function o(t,e,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?h(t,e,n):"string"==typeof t?u(t,e):p(t)}function s(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function a(t,e,n){return s(t),t<=0?i(t):void 0!==e?"string"==typeof n?i(t).fill(e,n):i(t).fill(e):i(t)}function c(t){return s(t),i(t<0?0:0|l(t))}function u(e,n){if("string"==typeof n&&""!==n||(n="utf8"),!t.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|y(e,n),o=i(r),s=o.write(e,n);return s!==r&&(o=o.slice(0,s)),o}function f(t){for(var e=t.length<0?0:0|l(t.length),n=i(e),r=0;r<e;r+=1)n[r]=255&t[r];return n}function h(e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");var i;return i=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r),i.__proto__=t.prototype,i}function p(e){if(t.isBuffer(e)){var n=0|l(e.length),r=i(n);return 0===r.length?r:(e.copy(r,0,0,n),r)}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||Z(e.length)?i(0):f(e);if("Buffer"===e.type&&Array.isArray(e.data))return f(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function l(t){if(t>=K)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K.toString(16)+" bytes");return 0|t}function d(e){return+e!=e&&(e=0),t.alloc(+e)}function y(e,n){if(t.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var i=!1;;)switch(n){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return W(e).length;default:if(i)return z(e).length;n=(""+n).toLowerCase(),i=!0}}function g(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,e>>>=0,n<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,n);case"utf8":case"utf-8":return F(this,e,n);case"ascii":return N(this,e,n);case"latin1":case"binary":return L(this,e,n);case"base64":return O(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function _(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function v(e,n,r,i,o){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof n&&(n=t.from(n,i)),t.isBuffer(n))return 0===n.length?-1:w(e,n,r,i,o);if("number"==typeof n)return n&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,n,r):Uint8Array.prototype.lastIndexOf.call(e,n,r):w(e,[n],r,i,o);throw new TypeError("val must be string, number or Buffer")}function w(t,e,n,r,i){function o(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}var s=1,a=t.length,c=e.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,c/=2,n/=2}var u;if(i){var f=-1;for(u=n;u<a;u++)if(o(t,u)===o(e,f===-1?0:u-f)){if(f===-1&&(f=u),u-f+1===c)return f*s}else f!==-1&&(u-=u-f),f=-1}else for(n+c>a&&(n=a-c),u=n;u>=0;u--){for(var h=!0,p=0;p<c;p++)if(o(t,u+p)!==o(e,p)){h=!1;break}if(h)return u}return-1}function m(t,e,n,r){n=Number(n)||0;var i=t.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s<r;++s){var a=parseInt(e.substr(2*s,2),16);if(isNaN(a))return s;t[n+s]=a}return s}function E(t,e,n,r){return H(z(e,t.length-n),t,n,r)}function S(t,e,n,r){return H(q(e),t,n,r)}function b(t,e,n,r){return S(t,e,n,r)}function k(t,e,n,r){return H(W(e),t,n,r)}function I(t,e,n,r){return H(V(e,t.length-n),t,n,r)}function O(t,e,n){return 0===e&&n===t.length?Y.fromByteArray(t):Y.fromByteArray(t.slice(e,n))}function F(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i<n;){var o=t[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a<=n){var c,u,f,h;switch(a){case 1:o<128&&(s=o);break;case 2:c=t[i+1],128===(192&c)&&(h=(31&o)<<6|63&c,h>127&&(s=h));break;case 3:c=t[i+1],u=t[i+2],128===(192&c)&&128===(192&u)&&(h=(15&o)<<12|(63&c)<<6|63&u,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:c=t[i+1],u=t[i+2],f=t[i+3],128===(192&c)&&128===(192&u)&&128===(192&f)&&(h=(15&o)<<18|(63&c)<<12|(63&u)<<6|63&f,h>65535&&h<1114112&&(s=h))}}null===s?(s=65533,a=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),i+=a}return R(r)}function R(t){var e=t.length;if(e<=G)return String.fromCharCode.apply(String,t);for(var n="",r=0;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=G));return n}function N(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function L(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function T(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=e;o<n;++o)i+=j(t[o]);return i}function x(t,e,n){for(var r=t.slice(e,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function D(t,e,n){if(t%1!==0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function A(e,n,r,i,o,s){if(!t.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(n>o||n<s)throw new RangeError('"value" argument is out of bounds');if(r+i>e.length)throw new RangeError("Index out of range")}function P(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function C(t,e,n,r,i){return e=+e,n>>>=0,i||P(t,e,n,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(t,e,n,r,23,4),n+4}function U(t,e,n,r,i){return e=+e,n>>>=0,i||P(t,e,n,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(t,e,n,r,52,8),n+8}function M(t){if(t=B(t).replace(J,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function B(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function j(t){return t<16?"0"+t.toString(16):t.toString(16)}function z(t,e){e=e||1/0;for(var n,r=t.length,i=null,o=[],s=0;s<r;++s){if(n=t.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function q(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}function V(t,e){for(var n,r,i,o=[],s=0;s<t.length&&!((e-=2)<0);++s)n=t.charCodeAt(s),r=n>>8,i=n%256,o.push(i),o.push(r);return o}function W(t){return Y.toByteArray(M(t))}function H(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}function Z(t){return t!==t}var Y=n(18),X=n(21);e.Buffer=t,e.SlowBuffer=d,e.INSPECT_MAX_BYTES=50;var K=2147483647;e.kMaxLength=K,t.TYPED_ARRAY_SUPPORT=r(),t.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&t[Symbol.species]===t&&Object.defineProperty(t,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),t.poolSize=8192,t.from=function(t,e,n){return o(t,e,n)},t.prototype.__proto__=Uint8Array.prototype,t.__proto__=Uint8Array,t.alloc=function(t,e,n){return a(t,e,n)},t.allocUnsafe=function(t){return c(t)},t.allocUnsafeSlow=function(t){return c(t)},t.isBuffer=function(t){return!(null==t||!t._isBuffer)},t.compare=function(e,n){if(!t.isBuffer(e)||!t.isBuffer(n))throw new TypeError("Arguments must be Buffers");if(e===n)return 0;for(var r=e.length,i=n.length,o=0,s=Math.min(r,i);o<s;++o)if(e[o]!==n[o]){r=e[o],i=n[o];break}return r<i?-1:i<r?1:0},t.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},t.concat=function(e,n){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return t.alloc(0);var r;if(void 0===n)for(n=0,r=0;r<e.length;++r)n+=e[r].length;var i=t.allocUnsafe(n),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!t.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(i,o),o+=s.length}return i},t.byteLength=y,t.prototype._isBuffer=!0,t.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)_(this,e,e+1);return this},t.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)_(this,e,e+3),_(this,e+1,e+2);return this},t.prototype.swap64=function(){var t=this.length;if(t%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)_(this,e,e+7),_(this,e+1,e+6),_(this,e+2,e+5),_(this,e+3,e+4);return this},t.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?F(this,0,t):g.apply(this,arguments)},t.prototype.equals=function(e){if(!t.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===t.compare(this,e)},t.prototype.inspect=function(){var t="",n=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),"<Buffer "+t+">"},t.prototype.compare=function(e,n,r,i,o){if(!t.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===n&&(n=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),n<0||r>e.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&n>=r)return 0;if(i>=o)return-1;if(n>=r)return 1;if(n>>>=0,r>>>=0,i>>>=0,o>>>=0,this===e)return 0;for(var s=o-i,a=r-n,c=Math.min(s,a),u=this.slice(i,o),f=e.slice(n,r),h=0;h<c;++h)if(u[h]!==f[h]){s=u[h],a=f[h];break}return s<a?-1:a<s?1:0},t.prototype.includes=function(t,e,n){return this.indexOf(t,e,n)!==-1},t.prototype.indexOf=function(t,e,n){return v(this,t,e,n,!0)},t.prototype.lastIndexOf=function(t,e,n){return v(this,t,e,n,!1)},t.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return m(this,t,e,n);case"utf8":case"utf-8":return E(this,t,e,n);case"ascii":return S(this,t,e,n);case"latin1":case"binary":return b(this,t,e,n);case"base64":return k(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},t.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var G=4096;t.prototype.slice=function(e,n){var r=this.length;e=~~e,n=void 0===n?r:~~n,e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),n<0?(n+=r,n<0&&(n=0)):n>r&&(n=r),n<e&&(n=e);var i=this.subarray(e,n);return i.__proto__=t.prototype,i},t.prototype.readUIntLE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r},t.prototype.readUIntBE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);for(var r=this[t+--e],i=1;e>0&&(i*=256);)r+=this[t+--e]*i;return r},t.prototype.readUInt8=function(t,e){return t>>>=0,e||D(t,1,this.length),this[t]},t.prototype.readUInt16LE=function(t,e){return t>>>=0,e||D(t,2,this.length),this[t]|this[t+1]<<8},t.prototype.readUInt16BE=function(t,e){return t>>>=0,e||D(t,2,this.length),this[t]<<8|this[t+1]},t.prototype.readUInt32LE=function(t,e){return t>>>=0,e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},t.prototype.readUInt32BE=function(t,e){return t>>>=0,e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},t.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*e)),r},t.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},t.prototype.readInt8=function(t,e){return t>>>=0,e||D(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},t.prototype.readInt16LE=function(t,e){t>>>=0,e||D(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},t.prototype.readInt16BE=function(t,e){t>>>=0,e||D(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},t.prototype.readInt32LE=function(t,e){return t>>>=0,e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},t.prototype.readInt32BE=function(t,e){return t>>>=0,e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},t.prototype.readFloatLE=function(t,e){return t>>>=0,e||D(t,4,this.length),X.read(this,t,!0,23,4)},t.prototype.readFloatBE=function(t,e){return t>>>=0,e||D(t,4,this.length),X.read(this,t,!1,23,4)},t.prototype.readDoubleLE=function(t,e){return t>>>=0,e||D(t,8,this.length),X.read(this,t,!0,52,8)},t.prototype.readDoubleBE=function(t,e){return t>>>=0,e||D(t,8,this.length),X.read(this,t,!1,52,8)},t.prototype.writeUIntLE=function(t,e,n,r){if(t=+t,e>>>=0,n>>>=0,!r){var i=Math.pow(2,8*n)-1;A(this,t,e,n,i,0)}var o=1,s=0;for(this[e]=255&t;++s<n&&(o*=256);)this[e+s]=t/o&255;return e+n},t.prototype.writeUIntBE=function(t,e,n,r){if(t=+t,e>>>=0,n>>>=0,!r){var i=Math.pow(2,8*n)-1;A(this,t,e,n,i,0)}var o=n-1,s=1;for(this[e+o]=255&t;--o>=0&&(s*=256);)this[e+o]=t/s&255;return e+n},t.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,1,255,0),this[e]=255&t,e+1},t.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},t.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},t.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},t.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},t.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e>>>=0,!r){var i=Math.pow(2,8*n-1);A(this,t,e,n,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o<n&&(s*=256);)t<0&&0===a&&0!==this[e+o-1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+n},t.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e>>>=0,!r){var i=Math.pow(2,8*n-1);A(this,t,e,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+n},t.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},t.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},t.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},t.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},t.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||A(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},t.prototype.writeFloatLE=function(t,e,n){return C(this,t,e,!0,n)},t.prototype.writeFloatBE=function(t,e,n){return C(this,t,e,!1,n)},t.prototype.writeDoubleLE=function(t,e,n){return U(this,t,e,!0,n)},t.prototype.writeDoubleBE=function(t,e,n){return U(this,t,e,!1,n)},t.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var i,o=r-n;if(this===t&&n<e&&e<r)for(i=o-1;i>=0;--i)t[i+e]=this[i+n];else if(o<1e3)for(i=0;i<o;++i)t[i+e]=this[i+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+o),e);return o},t.prototype.fill=function(e,n,r,i){if("string"==typeof e){if("string"==typeof n?(i=n,n=0,r=this.length):"string"==typeof r&&(i=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!t.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"==typeof e&&(e&=255);if(n<0||this.length<n||this.length<r)throw new RangeError("Out of range index");if(r<=n)return this;n>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if("number"==typeof e)for(s=n;s<r;++s)this[s]=e;else{var a=t.isBuffer(e)?e:new t(e,i),c=a.length;for(s=0;s<r-n;++s)this[s+n]=a[s%c]}return this};var J=/[^+\/0-9A-Za-z-_]/g}).call(e,n(7))},function(t,e,n){"use strict";function r(t){return this instanceof r?(u.call(this,t),f.call(this,t),t&&t.readable===!1&&(this.readable=!1),t&&t.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,t&&t.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",i)):new r(t)}function i(){this.allowHalfOpen||this._writableState.ended||a(o,this)}function o(t){t.end()}var s=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};t.exports=r;var a=n(11),c=n(5);c.inherits=n(4);var u=n(16),f=n(13);c.inherits(r,u);for(var h=s(f.prototype),p=0;p<h.length;p++){var l=h[p];r.prototype[l]||(r.prototype[l]=f.prototype[l])}},function(t,e,n){"use strict";function r(t){s[t]||("function"==typeof o[t]?s[t]=function(){return o[t].apply(o,arguments)}:s[t]=o[t])}var i=n(19),o=new i,s={};for(var a in o)r(a);s.initializeTTYs=function(){null===o.stdin&&(o.initializeTTYs(),s.stdin=o.stdin,s.stdout=o.stdout,s.stderr=o.stderr)},o.nextTick(function(){s.initializeTTYs()}),t.exports=s},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e,n){(function(t){function n(t){return Array.isArray?Array.isArray(t):"[object Array]"===g(t)}function r(t){return"boolean"==typeof t}function i(t){return null===t}function o(t){return null==t}function s(t){return"number"==typeof t}function a(t){return"string"==typeof t}function c(t){return"symbol"==typeof t}function u(t){return void 0===t}function f(t){return"[object RegExp]"===g(t)}function h(t){return"object"==typeof t&&null!==t}function p(t){return"[object Date]"===g(t)}function l(t){return"[object Error]"===g(t)||t instanceof Error}function d(t){return"function"==typeof t}function y(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function g(t){return Object.prototype.toString.call(t)}e.isArray=n,e.isBoolean=r,e.isNull=i,e.isNullOrUndefined=o,e.isNumber=s,e.isString=a,e.isSymbol=c,e.isUndefined=u,e.isRegExp=f,e.isObject=h,e.isDate=p,e.isError=l,e.isFunction=d,e.isPrimitive=y,e.isBuffer=t.isBuffer}).call(e,n(7))},function(t,e){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(t){return"function"==typeof t}function i(t){return"number"==typeof t}function o(t){return"object"==typeof t&&null!==t}function s(t){return void 0===t}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(t){if(!i(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},n.prototype.emit=function(t){var e,n,i,a,c,u;if(this._events||(this._events={}),"error"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if(e=arguments[1],e instanceof Error)throw e;var f=new Error('Uncaught, unspecified "error" event. ('+e+")");throw f.context=e,f}if(n=this._events[t],s(n))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),n.apply(this,a)}else if(o(n))for(a=Array.prototype.slice.call(arguments,1),u=n.slice(),i=u.length,c=0;c<i;c++)u[c].apply(this,a);return!0},n.prototype.addListener=function(t,e){var i;if(!r(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,r(e.listener)?e.listener:e),this._events[t]?o(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,o(this._events[t])&&!this._events[t].warned&&(i=s(this._maxListeners)?n.defaultMaxListeners:this._maxListeners,i&&i>0&&this._events[t].length>i&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,e){function n(){this.removeListener(t,n),i||(i=!0,e.apply(this,arguments))}if(!r(e))throw TypeError("listener must be a function");var i=!1;return n.listener=e,this.on(t,n),this},n.prototype.removeListener=function(t,e){var n,i,s,a;if(!r(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(n=this._events[t],s=n.length,i=-1,n===e||r(n.listener)&&n.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(o(n)){for(a=s;a-- >0;)if(n[a]===e||n[a].listener&&n[a].listener===e){i=a;break}if(i<0)return this;1===n.length?(n.length=0,delete this._events[t]):n.splice(i,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},n.prototype.removeAllListeners=function(t){var e,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[t],r(n))this.removeListener(t,n);else if(n)for(;n.length;)this.removeListener(t,n[n.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){var e;return e=this._events&&this._events[t]?r(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(r(e))return 1;if(e)return e.length}return 0},n.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,n){t.exports=n(1).Buffer},function(t,e){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;e.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var r={arraySet:function(t,e,n,r,i){if(e.subarray&&t.subarray)return void t.set(e.subarray(n,n+r),i);for(var o=0;o<r;o++)t[i+o]=e[n+o]},flattenChunks:function(t){var e,n,r,i,o,s;for(r=0,e=0,n=t.length;e<n;e++)r+=t[e].length;for(s=new Uint8Array(r),i=0,e=0,n=t.length;e<n;e++)o=t[e],s.set(o,i),i+=o.length;return s}},i={arraySet:function(t,e,n,r,i){for(var o=0;o<r;o++)t[i+o]=e[n+o]},flattenChunks:function(t){return[].concat.apply([],t)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(n)},function(t,e,n){function r(){i.call(this)}t.exports=r;var i=n(6).EventEmitter,o=n(4);o(r,i),r.Readable=n(37),r.Writable=n(39),r.Duplex=n(34),r.Transform=n(38),r.PassThrough=n(36),r.Stream=r,r.prototype.pipe=function(t,e){function n(e){t.writable&&!1===t.write(e)&&u.pause&&u.pause()}function r(){u.readable&&u.resume&&u.resume()}function o(){f||(f=!0,t.end())}function s(){f||(f=!0,"function"==typeof t.destroy&&t.destroy())}function a(t){if(c(),0===i.listenerCount(this,"error"))throw t}function c(){u.removeListener("data",n),t.removeListener("drain",r),u.removeListener("end",o),u.removeListener("close",s),u.removeListener("error",a),t.removeListener("error",a),u.removeListener("end",c),u.removeListener("close",c),t.removeListener("close",c)}var u=this;u.on("data",n),t.on("drain",r),t._isStdio||e&&e.end===!1||(u.on("end",o),u.on("close",s));var f=!1;return u.on("error",a),t.on("error",a),u.on("end",c),u.on("close",c),t.on("close",c),t.emit("pipe",u),t}},function(t,e,n){(function(t){"use strict";var r=n(1),i=r.Buffer,o=r.SlowBuffer,s=r.kMaxLength||2147483647;e.alloc=function(t,e,n){if("function"==typeof i.alloc)return i.alloc(t,e,n);if("number"==typeof n)throw new TypeError("encoding must not be number");if("number"!=typeof t)throw new TypeError("size must be a number");if(t>s)throw new RangeError("size is too large");var r=n,o=e;void 0===o&&(r=void 0,o=0);var a=new i(t);if("string"==typeof o)for(var c=new i(o,r),u=c.length,f=-1;++f<t;)a[f]=c[f%u];else a.fill(o);return a},e.allocUnsafe=function(t){if("function"==typeof i.allocUnsafe)return i.allocUnsafe(t);if("number"!=typeof t)throw new TypeError("size must be a number");if(t>s)throw new RangeError("size is too large");return new i(t)},e.from=function(e,n,r){if("function"==typeof i.from&&(!t.Uint8Array||Uint8Array.from!==i.from))return i.from(e,n,r);if("number"==typeof e)throw new TypeError('"value" argument must not be a number');if("string"==typeof e)return new i(e,n);if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer){var o=n;if(1===arguments.length)return new i(e);"undefined"==typeof o&&(o=0);var s=r;if("undefined"==typeof s&&(s=e.byteLength-o),o>=e.byteLength)throw new RangeError("'offset' is out of bounds");if(s>e.byteLength-o)throw new RangeError("'length' is out of bounds");return new i(e.slice(o,o+s))}if(i.isBuffer(e)){var a=new i(e.length);return e.copy(a,0,0,e.length),a}if(e){if(Array.isArray(e)||"undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return new i(e);if("Buffer"===e.type&&Array.isArray(e.data))return new i(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},e.allocUnsafeSlow=function(t){if("function"==typeof i.allocUnsafeSlow)return i.allocUnsafeSlow(t);if("number"!=typeof t)throw new TypeError("size must be a number");if(t>=s)throw new RangeError("size is too large");return new o(t)}}).call(e,function(){return this}())},function(t,e,n){(function(e){"use strict";function n(t,n,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,n)});case 3:return e.nextTick(function(){t.call(null,n,r)});case 4:return e.nextTick(function(){t.call(null,n,r,i)});default:for(o=new Array(a-1),s=0;s<o.length;)o[s++]=arguments[s];return e.nextTick(function(){t.apply(null,o)})}}!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports=n:t.exports=e.nextTick}).call(e,n(3))},function(t,e,n){"use strict";function r(t){this.afterTransform=function(e,n){return i(t,e,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(t,e,n){var r=t._transformState;r.transforming=!1;var i=r.writecb;if(!i)return t.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&t.push(n),i(e);var o=t._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&t._read(o.highWaterMark)}function o(t){if(!(this instanceof o))return new o(t);a.call(this,t),this._transformState=new r(this);var e=this;this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(t,n){s(e,t,n)}):s(e)})}function s(t,e,n){if(e)return t.emit("error",e);null!==n&&void 0!==n&&t.push(n);var r=t._writableState,i=t._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return t.push(null)}t.exports=o;var a=n(2),c=n(5);c.inherits=n(4),c.inherits(o,a),o.prototype.push=function(t,e){return this._transformState.needTransform=!1,a.prototype.push.call(this,t,e)},o.prototype._transform=function(t,e,n){throw new Error("_transform() is not implemented")},o.prototype._write=function(t,e,n){var r=this._transformState;if(r.writecb=n,r.writechunk=t,r.writeencoding=e,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0}},function(t,e,n){(function(e){"use strict";function r(){}function i(t,e,n){this.chunk=t,this.encoding=e,this.callback=n,this.next=null}function o(t,e){b=b||n(2),t=t||{},this.objectMode=!!t.objectMode,e instanceof b&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){d(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new S(this)}function s(t){return b=b||n(2),T.call(s,this)||this instanceof b?(this._writableState=new o(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev)),void F.call(this)):new s(t)}function a(t,e){var n=new Error("write after end");t.emit("error",n),k(e,n)}function c(t,e,n,r){var i=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):N.isBuffer(n)||"string"==typeof n||void 0===n||e.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(t.emit("error",o),k(r,o),i=!1),i}function u(t,e,n){return t.objectMode||t.decodeStrings===!1||"string"!=typeof e||(e=L.from(e,n)),e}function f(t,e,n,r,o){n=u(e,n,r),N.isBuffer(n)&&(r="buffer");var s=e.objectMode?1:n.length;e.length+=s;var a=e.length<e.highWaterMark;if(a||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest=new i(n,r,o),c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else h(t,e,!1,s,n,r,o);return a}function h(t,e,n,r,i,o,s){e.writelen=r,e.writecb=s,e.writing=!0,e.sync=!0,n?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function p(t,e,n,r,i){--e.pendingcb,n?k(i,r):i(r),t._writableState.errorEmitted=!0,t.emit("error",r)}function l(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function d(t,e){var n=t._writableState,r=n.sync,i=n.writecb;if(l(n),e)p(t,n,r,e,i);else{var o=v(n);o||n.corked||n.bufferProcessing||!n.bufferedRequest||_(t,n),r?I(y,t,n,o,i):y(t,n,o,i)}}function y(t,e,n,r){n||g(t,e),e.pendingcb--,r(),m(t,e)}function g(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}function _(t,e){e.bufferProcessing=!0;var n=e.bufferedRequest;if(t._writev&&n&&n.next){var r=e.bufferedRequestCount,i=new Array(r),o=e.corkedRequestsFree;o.entry=n;for(var s=0;n;)i[s]=n,n=n.next,s+=1;h(t,e,!0,e.length,i,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new S(e)}else{for(;n;){var a=n.chunk,c=n.encoding,u=n.callback,f=e.objectMode?1:a.length;if(h(t,e,!1,f,a,c,u),n=n.next,e.writing)break}null===n&&(e.lastBufferedRequest=null)}e.bufferedRequestCount=0,e.bufferedRequest=n,e.bufferProcessing=!1}function v(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function w(t,e){e.prefinished||(e.prefinished=!0,t.emit("prefinish"))}function m(t,e){var n=v(e);return n&&(0===e.pendingcb?(w(t,e),e.finished=!0,t.emit("finish")):w(t,e)),n}function E(t,e,n){e.ending=!0,m(t,e),n&&(e.finished?k(n):t.once("finish",n)),e.ended=!0,t.writable=!1}function S(t){var e=this;this.next=null,this.entry=null,this.finish=function(n){var r=e.entry;for(e.entry=null;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}}t.exports=s;var b,k=n(11),I=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?setImmediate:k;s.WritableState=o;var O=n(5);O.inherits=n(4);var F,R={deprecate:n(40)};!function(){try{F=n(9)}catch(t){}finally{F||(F=n(6).EventEmitter)}}();var N=n(1).Buffer,L=n(10);O.inherits(s,F),o.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(o.prototype,"buffer",{get:R.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(t){}}();var T;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(T=Function.prototype[Symbol.hasInstance],Object.defineProperty(s,Symbol.hasInstance,{value:function(t){return!!T.call(this,t)||t&&t._writableState instanceof o}})):T=function(t){return t instanceof this},s.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},s.prototype.write=function(t,e,n){var i=this._writableState,o=!1;return"function"==typeof e&&(n=e,e=null),N.isBuffer(t)?e="buffer":e||(e=i.defaultEncoding),"function"!=typeof n&&(n=r),i.ended?a(this,n):c(this,i,t,n)&&(i.pendingcb++,o=f(this,i,t,e,n)),o},s.prototype.cork=function(){var t=this._writableState;t.corked++},s.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||_(this,t))},s.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},s.prototype._write=function(t,e,n){n(new Error("_write() is not implemented"))},s.prototype._writev=null,s.prototype.end=function(t,e,n){var r=this._writableState;"function"==typeof t?(n=t,t=null,e=null):"function"==typeof e&&(n=e,e=null),null!==t&&void 0!==t&&this.write(t,e),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||E(this,r,n)}}).call(e,n(3))},function(t,e,n){(function(e){"use strict";function n(t){var e=r.exec(t);return e.shift(),e}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,i=function(){function t(){}return t.normalize=function(e){""===e&&(e=".");var n=e.charAt(0)===t.sep;e=t._removeDuplicateSeps(e);for(var r=e.split(t.sep),i=[],o=0;o<r.length;o++){var s=r[o];"."!==s&&(".."===s&&(n||!n&&i.length>0&&".."!==i[0])?i.pop():i.push(s))}if(!n&&i.length<2)switch(i.length){case 1:""===i[0]&&i.unshift(".");break;default:i.push(".")}return e=i.join(t.sep),n&&e.charAt(0)!==t.sep&&(e=t.sep+e),e},t.join=function(){for(var e=[],n=0;n<arguments.length;n++)e[n-0]=arguments[n];for(var r=[],i=0;i<e.length;i++){var o=e[i];if("string"!=typeof o)throw new TypeError("Invalid argument type to path.join: "+typeof o);""!==o&&r.push(o)}return t.normalize(r.join(t.sep))},t.resolve=function(){for(var n=[],r=0;r<arguments.length;r++)n[r-0]=arguments[r];for(var i=[],o=0;o<n.length;o++){var s=n[o];if("string"!=typeof s)throw new TypeError("Invalid argument type to path.join: "+typeof s);""!==s&&(s.charAt(0)===t.sep&&(i=[]),i.push(s))}var a=t.normalize(i.join(t.sep));if(a.length>1&&a.charAt(a.length-1)===t.sep)return a.substr(0,a.length-1);if(a.charAt(0)!==t.sep){"."!==a.charAt(0)||1!==a.length&&a.charAt(1)!==t.sep||(a=1===a.length?"":a.substr(2));var c=e.cwd();a=""!==a?this.normalize(c+("/"!==c?t.sep:"")+a):c}return a},t.relative=function(e,n){var r;e=t.resolve(e),n=t.resolve(n);var i=e.split(t.sep),o=n.split(t.sep);o.shift(),i.shift();var s=0,a=[];for(r=0;r<i.length;r++){var c=i[r];if(c!==o[r]){s=i.length-r;break}}a=o.slice(r),1===i.length&&""===i[0]&&(s=0),s>i.length&&(s=i.length);var u="";for(r=0;r<s;r++)u+="../";return u+=a.join(t.sep),u.length>1&&u.charAt(u.length-1)===t.sep&&(u=u.substr(0,u.length-1)),u},t.dirname=function(e){e=t._removeDuplicateSeps(e);var n=e.charAt(0)===t.sep,r=e.split(t.sep);return""===r.pop()&&r.length>0&&r.pop(),r.length>1||1===r.length&&!n?r.join(t.sep):n?t.sep:"."},t.basename=function(e,n){if(void 0===n&&(n=""),""===e)return e;e=t.normalize(e);var r=e.split(t.sep),i=r[r.length-1];if(""===i&&r.length>1)return r[r.length-2];if(n.length>0){var o=i.substr(i.length-n.length);if(o===n)return i.substr(0,i.length-n.length)}return i},t.extname=function(e){e=t.normalize(e);var n=e.split(t.sep);if(e=n.pop(),""===e&&n.length>0&&(e=n.pop()),".."===e)return"";var r=e.lastIndexOf(".");return r===-1||0===r?"":e.substr(r)},t.isAbsolute=function(e){return e.length>0&&e.charAt(0)===t.sep},t._makeLong=function(t){return t},t.parse=function(t){var e=n(t);return{root:e[0],dir:e[0]+e[1].slice(0,-1),base:e[2],ext:e[3],name:e[2].slice(0,e[2].length-e[3].length)}},t.format=function(e){if(null===e||"object"!=typeof e)throw new TypeError("Parameter 'pathObject' must be an object, not "+typeof e);var n=e.root||"";if("string"!=typeof n)throw new TypeError("'pathObject.root' must be a string or undefined, not "+typeof e.root);var r=e.dir?e.dir+t.sep:"",i=e.base||"";return r+i},t._removeDuplicateSeps=function(t){return t=t.replace(this._replaceRegex,this.sep)},t.sep="/",t._replaceRegex=new RegExp("//+","g"),t.delimiter=":",t.posix=t,t.win32=t,t}();t.exports=i}).call(e,n(3))},function(t,e,n){"use strict";function r(t){return this instanceof r?void i.call(this,t):new r(t)}t.exports=r;var i=n(12),o=n(5);o.inherits=n(4),o.inherits(r,i),r.prototype._transform=function(t,e,n){n(null,t)}},function(t,e,n){(function(e){"use strict";function r(t,e,n){return"function"==typeof t.prependListener?t.prependListener(e,n):void(t._events&&t._events[e]?T(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n))}function i(t,e){N=N||n(2),t=t||{},this.objectMode=!!t.objectMode,e instanceof N&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new j,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(B||(B=n(17).StringDecoder),this.decoder=new B(t.encoding),this.encoding=t.encoding)}function o(t){return N=N||n(2),this instanceof o?(this._readableState=new i(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),void x.call(this)):new o(t)}function s(t,e,n,r,i){var o=f(e,n);if(o)t.emit("error",o);else if(null===n)e.reading=!1,h(t,e);else if(e.objectMode||n&&n.length>0)if(e.ended&&!i){var s=new Error("stream.push() after EOF");t.emit("error",s)}else if(e.endEmitted&&i){var c=new Error("stream.unshift() after end event");t.emit("error",c)}else{var u;!e.decoder||i||r||(n=e.decoder.write(n),u=!e.objectMode&&0===n.length),i||(e.reading=!1),u||(e.flowing&&0===e.length&&!e.sync?(t.emit("data",n),t.read(0)):(e.length+=e.objectMode?1:n.length,i?e.buffer.unshift(n):e.buffer.push(n),e.needReadable&&p(t))),d(t,e)}else i||(e.reading=!1);return a(e)}function a(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}function c(t){return t>=z?t=z:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function u(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=c(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function f(t,e){var n=null;return A.isBuffer(e)||"string"==typeof e||null===e||void 0===e||t.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function h(t,e){if(!e.ended){if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,p(t)}}function p(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(M("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?L(l,t):l(t))}function l(t){M("emit readable"),t.emit("readable"),m(t)}function d(t,e){e.readingMore||(e.readingMore=!0,L(y,t,e))}function y(t,e){for(var n=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(M("maybeReadMore read 0"),t.read(0),n!==e.length);)n=e.length;e.readingMore=!1}function g(t){return function(){var e=t._readableState;M("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&D(t,"data")&&(e.flowing=!0,m(t))}}function _(t){M("readable nexttick read 0"),t.read(0)}function v(t,e){e.resumeScheduled||(e.resumeScheduled=!0,L(w,t,e))}function w(t,e){e.reading||(M("resume read 0"),t.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,t.emit("resume"),m(t),e.flowing&&!e.reading&&t.read(0)}function m(t){var e=t._readableState;for(M("flow",e.flowing);e.flowing&&null!==t.read(););}function E(t,e){if(0===e.length)return null;var n;return e.objectMode?n=e.buffer.shift():!t||t>=e.length?(n=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):n=S(t,e.buffer,e.decoder),n}function S(t,e,n){var r;return t<e.head.data.length?(r=e.head.data.slice(0,t),e.head.data=e.head.data.slice(t)):r=t===e.head.data.length?e.shift():n?b(t,e):k(t,e),r}function b(t,e){var n=e.head,r=1,i=n.data;for(t-=i.length;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(i+=s===o.length?o:o.slice(0,t),t-=s,0===t){s===o.length?(++r,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++r}return e.length-=r,i}function k(t,e){var n=P.allocUnsafe(t),r=e.head,i=1;for(r.data.copy(n),t-=r.data.length;r=r.next;){var o=r.data,s=t>o.length?o.length:t;if(o.copy(n,n.length-t,0,s),t-=s,0===t){s===o.length?(++i,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++i}return e.length-=i,n}function I(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,L(O,e,t))}function O(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function F(t,e){for(var n=0,r=t.length;n<r;n++)e(t[n],n)}function R(t,e){for(var n=0,r=t.length;n<r;n++)if(t[n]===e)return n;return-1}t.exports=o;var N,L=n(11),T=n(22);o.ReadableState=i;var x,D=(n(6).EventEmitter,function(t,e){return t.listeners(e).length});!function(){try{x=n(9)}catch(t){}finally{x||(x=n(6).EventEmitter)}}();var A=n(1).Buffer,P=n(10),C=n(5);C.inherits=n(4);var U=n(42),M=void 0;M=U&&U.debuglog?U.debuglog("stream"):function(){};var B,j=n(35);C.inherits(o,x),o.prototype.push=function(t,e){var n=this._readableState;return n.objectMode||"string"!=typeof t||(e=e||n.defaultEncoding,e!==n.encoding&&(t=P.from(t,e),e="")),s(this,n,t,e,!1)},o.prototype.unshift=function(t){var e=this._readableState;return s(this,e,t,"",!0)},o.prototype.isPaused=function(){return this._readableState.flowing===!1},o.prototype.setEncoding=function(t){return B||(B=n(17).StringDecoder),this._readableState.decoder=new B(t),this._readableState.encoding=t,this};var z=8388608;o.prototype.read=function(t){M("read",t),t=parseInt(t,10);var e=this._readableState,n=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return M("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?I(this):p(this),null;if(t=u(t,e),0===t&&e.ended)return 0===e.length&&I(this),null;var r=e.needReadable;M("need readable",r),(0===e.length||e.length-t<e.highWaterMark)&&(r=!0,M("length less than watermark",r)),e.ended||e.reading?(r=!1,M("reading or ended",r)):r&&(M("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=u(n,e)));var i;return i=t>0?E(t,e):null,null===i?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&I(this)),null!==i&&this.emit("data",i),i},o.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},o.prototype.pipe=function(t,n){function i(t){M("onunpipe"),t===p&&s()}function o(){M("onend"),t.end()}function s(){M("cleanup"),t.removeListener("close",u),t.removeListener("finish",f),t.removeListener("drain",_),t.removeListener("error",c),t.removeListener("unpipe",i),p.removeListener("end",o),p.removeListener("end",s),p.removeListener("data",a),v=!0,!l.awaitDrain||t._writableState&&!t._writableState.needDrain||_()}function a(e){M("ondata"),w=!1;var n=t.write(e);!1!==n||w||((1===l.pipesCount&&l.pipes===t||l.pipesCount>1&&R(l.pipes,t)!==-1)&&!v&&(M("false write response, pause",p._readableState.awaitDrain),p._readableState.awaitDrain++,w=!0),p.pause())}function c(e){M("onerror",e),h(),t.removeListener("error",c),0===D(t,"error")&&t.emit("error",e)}function u(){t.removeListener("finish",f),h()}function f(){M("onfinish"),t.removeListener("close",u),h()}function h(){M("unpipe"),p.unpipe(t)}var p=this,l=this._readableState;switch(l.pipesCount){case 0:l.pipes=t;break;case 1:l.pipes=[l.pipes,t];break;default:l.pipes.push(t)}l.pipesCount+=1,M("pipe count=%d opts=%j",l.pipesCount,n);var d=(!n||n.end!==!1)&&t!==e.stdout&&t!==e.stderr,y=d?o:s;l.endEmitted?L(y):p.once("end",y),t.on("unpipe",i);var _=g(p);t.on("drain",_);var v=!1,w=!1;return p.on("data",a),r(t,"error",c),t.once("close",u),t.once("finish",f),t.emit("pipe",p),l.flowing||(M("pipe resume"),p.resume()),t},o.prototype.unpipe=function(t){var e=this._readableState;if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this),this);if(!t){var n=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this);return this}var o=R(e.pipes,t);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this),this)},o.prototype.on=function(t,e){var n=x.prototype.on.call(this,t,e);if("data"===t)this._readableState.flowing!==!1&&this.resume();else if("readable"===t){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&p(this,r):L(_,this))}return n},o.prototype.addListener=o.prototype.on,o.prototype.resume=function(){var t=this._readableState;return t.flowing||(M("resume"),t.flowing=!0,v(this,t)),this},o.prototype.pause=function(){return M("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(M("pause"),this._readableState.flowing=!1,this.emit("pause")),this},o.prototype.wrap=function(t){var e=this._readableState,n=!1,r=this;t.on("end",function(){if(M("wrapped end"),e.decoder&&!e.ended){var t=e.decoder.end();t&&t.length&&r.push(t)}r.push(null)}),t.on("data",function(i){if(M("wrapped data"),e.decoder&&(i=e.decoder.write(i)),(!e.objectMode||null!==i&&void 0!==i)&&(e.objectMode||i&&i.length)){var o=r.push(i);o||(n=!0,t.pause())}});for(var i in t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));var o=["error","close","destroy","pause","resume"];return F(o,function(e){t.on(e,r.emit.bind(r,e))}),r._read=function(e){M("wrapped _read",e),n&&(n=!1,t.resume())},r},o._fromList=E}).call(e,n(3))},function(t,e,n){function r(t){if(t&&!c(t))throw new Error("Unknown encoding: "+t)}function i(t){return t.toString(this.encoding)}function o(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function s(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}var a=n(1).Buffer,c=a.isEncoding||function(t){switch(t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},u=e.StringDecoder=function(t){switch(this.encoding=(t||"utf8").toLowerCase().replace(/[-_]/,""),r(t),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=o;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=s;break;default:return void(this.write=i)}this.charBuffer=new a(6),this.charReceived=0,this.charLength=0};u.prototype.write=function(t){for(var e="";this.charLength;){var n=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";t=t.slice(n,t.length),e=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var r=e.charCodeAt(e.length-1);if(!(r>=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===t.length)return e;break}this.charLength+=this.surrogateSize,e=""}this.detectIncompleteChar(t);var i=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,i),i-=this.charReceived),e+=t.toString(this.encoding,0,i);var i=e.length-1,r=e.charCodeAt(i);if(r>=55296&&r<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),t.copy(this.charBuffer,0,0,o),e.substring(0,i)}return e},u.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var n=t[t.length-e];if(1==e&&n>>5==6){this.charLength=2;break}if(e<=2&&n>>4==14){this.charLength=3;break}if(e<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=e},u.prototype.end=function(t){var e="";if(t&&t.length&&(e=this.write(t)),this.charReceived){var n=this.charReceived,r=this.charBuffer,i=this.encoding;e+=r.slice(0,n).toString(i)}return e}},function(t,e){"use strict";function n(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function r(t){return 3*t.length/4-n(t)}function i(t){var e,r,i,o,s,a,c=t.length;s=n(t),a=new f(3*c/4-s),i=s>0?c-4:c;var h=0;for(e=0,r=0;e<i;e+=4,r+=3)o=u[t.charCodeAt(e)]<<18|u[t.charCodeAt(e+1)]<<12|u[t.charCodeAt(e+2)]<<6|u[t.charCodeAt(e+3)],a[h++]=o>>16&255,a[h++]=o>>8&255,a[h++]=255&o;return 2===s?(o=u[t.charCodeAt(e)]<<2|u[t.charCodeAt(e+1)]>>4,a[h++]=255&o):1===s&&(o=u[t.charCodeAt(e)]<<10|u[t.charCodeAt(e+1)]<<4|u[t.charCodeAt(e+2)]>>2,a[h++]=o>>8&255,a[h++]=255&o),a}function o(t){return c[t>>18&63]+c[t>>12&63]+c[t>>6&63]+c[63&t]}function s(t,e,n){for(var r,i=[],s=e;s<n;s+=3)r=(t[s]<<16)+(t[s+1]<<8)+t[s+2],i.push(o(r));return i.join("")}function a(t){for(var e,n=t.length,r=n%3,i="",o=[],a=16383,u=0,f=n-r;u<f;u+=a)o.push(s(t,u,u+a>f?f:u+a));return 1===r?(e=t[n-1],i+=c[e>>2],i+=c[e<<4&63],i+="=="):2===r&&(e=(t[n-2]<<8)+t[n-1],i+=c[e>>10],i+=c[e>>4&63],i+=c[e<<2&63],i+="="),o.push(i),o.join("")}e.byteLength=r,e.toByteArray=i,e.fromByteArray=a;for(var c=[],u=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,l=h.length;p<l;++p)c[p]=h[p],u[h.charCodeAt(p)]=p;u["-".charCodeAt(0)]=62,u["_".charCodeAt(0)]=63},function(t,e,n){(function(e){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=n(6),o=null,s=function(){function t(t,e){this.fun=t,this.array=e}return t.prototype.run=function(){this.fun.apply(null,this.array)},t}(),a=function(){function t(){this._queue=[],this._draining=!1,this._currentQueue=null,this._queueIndex=-1}return t.prototype.push=function(t){var e=this;1!==this._queue.push(t)||this._draining||setTimeout(function(){return e._drainQueue()},0)},t.prototype._cleanUpNextTick=function(){this._draining=!1,this._currentQueue&&this._currentQueue.length?this._queue=this._currentQueue.concat(this._queue):this._queueIndex=-1,this._queue.length&&this._drainQueue()},t.prototype._drainQueue=function(){var t=this;if(!this._draining){var e=setTimeout(function(){return t._cleanUpNextTick()});this._draining=!0;for(var n=this._queue.length;n;){for(this._currentQueue=this._queue,this._queue=[];++this._queueIndex<n;)this._currentQueue&&this._currentQueue[this._queueIndex].run();this._queueIndex=-1,n=this._queue.length}this._currentQueue=null,this._draining=!1,clearTimeout(e)}},t}(),c=function(t){function i(){t.apply(this,arguments),this.startTime=Date.now(),this._cwd="/",this.platform="browser",this.argv=[],this.execArgv=[],this.stdout=null,this.stderr=null,this.stdin=null,this.domain=null,this._queue=new a,this.execPath=e,this.env={},this.exitCode=0,this._gid=1,this._uid=1,this.version="v5.0",this.versions={http_parser:"0.0",node:"5.0",v8:"0.0",uv:"0.0",zlib:"0.0",ares:"0.0",icu:"0.0",modules:"0",openssl:"0.0"},this.config={target_defaults:{cflags:[],default_configuration:"Release",defines:[],include_dirs:[],libraries:[]},variables:{clang:0,host_arch:"x32",node_install_npm:!1,node_install_waf:!1,node_prefix:"",node_shared_cares:!1,node_shared_http_parser:!1,node_shared_libuv:!1,node_shared_zlib:!1,node_shared_v8:!1,node_use_dtrace:!1,node_use_etw:!1,node_use_openssl:!1,node_shared_openssl:!1,strict_aliasing:!1,target_arch:"x32",v8_use_snapshot:!1,v8_no_strict_aliasing:0,visibility:""}},this.pid=1e3*Math.random()|0,this.title="node",this.arch="x32",this._mask=18,this.connected=void 0}return r(i,t),i.prototype.chdir=function(t){null===o&&(o=n(14)),this._cwd=o.resolve(t)},i.prototype.cwd=function(){return this._cwd},i.prototype.uptime=function(){return(Date.now()-this.startTime)/1e3|0},i.prototype.nextTick=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this._queue.push(new s(t,e))},i.prototype.abort=function(){this.emit("abort")},i.prototype.exit=function(t){this.exitCode=t,this.emit("exit",[t])},i.prototype.getgid=function(){return this._gid},i.prototype.setgid=function(t){"number"==typeof t?this._gid=t:this._gid=1},i.prototype.getuid=function(){return this._uid},i.prototype.setuid=function(t){"number"==typeof t?this._uid=t:this._uid=1},i.prototype.kill=function(t,e){this.emit("kill",[t,e])},i.prototype.memoryUsage=function(){return{rss:0,heapTotal:0,heapUsed:0}},i.prototype.umask=function(t){void 0===t&&(t=this._mask);var e=this._mask;return this._mask=t,this.emit("umask",[t]),e},i.prototype.hrtime=function(){var t;t="undefined"!=typeof performance?performance.now():Date.now?Date.now():(new Date).getTime();var e=t/1e3|0;return t-=1e3*e,t=1e6*t|0,[e,t]},i.prototype.initializeTTYs=function(){if(null===this.stdout){var t=n(20);this.stdout=new t,this.stderr=new t,this.stdin=new t}},i.prototype.disconnect=function(){},i}(i.EventEmitter);t.exports=c}).call(e,"/")},function(t,e,n){(function(e){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=n(9),o=function(t){function n(){t.call(this),this.isRaw=!1,this.columns=80,this.rows=120,this.isTTY=!0,this._bufferedWrites=[],this._waitingForWrites=!1}return r(n,t),n.prototype.setRawMode=function(t){this.isRaw!==t&&(this.isRaw=t,this.emit("modeChange"))},n.prototype.changeColumns=function(t){t!==this.columns&&(this.columns=t,this.emit("resize"))},n.prototype.changeRows=function(t){t!==this.rows&&(this.rows=t,this.emit("resize"))},n.isatty=function(t){return t&&t instanceof n},n.prototype._write=function(t,n,r){var i;try{var o;o="string"==typeof t?new e(t,n):t,this._bufferedWrites.push(o),this._waitingForWrites&&this._read(1024)}catch(t){i=t}finally{r(i)}},n.prototype._read=function(t){if(0===this._bufferedWrites.length)this._waitingForWrites=!0;else for(;this._bufferedWrites.length>0&&(this._waitingForWrites=this.push(this._bufferedWrites.shift()),this._waitingForWrites););},n}(i.Duplex);t.exports=o}).call(e,n(7))},function(t,e){e.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,c=(1<<a)-1,u=c>>1,f=-7,h=n?i-1:0,p=n?-1:1,l=t[e+h];for(h+=p,o=l&(1<<-f)-1,l>>=-f,f+=a;f>0;o=256*o+t[e+h],h+=p,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=r;f>0;s=256*s+t[e+h],h+=p,f-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:(l?-1:1)*(1/0);s+=Math.pow(2,r),o-=u}return(l?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var s,a,c,u=8*o-i-1,f=(1<<u)-1,h=f>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=r?0:o-1,d=r?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=f):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),e+=s+h>=1?p/c:p*Math.pow(2,1-h),e*c>=2&&(s++,c/=2),s+h>=f?(a=0,s=f):s+h>=1?(a=(e*c-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[n+l]=255&a,l+=d,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;t[n+l]=255&s,l+=d,s/=256,u-=8);t[n+l-d]|=128*y}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e,n){"use strict";function r(t){if(!(this instanceof r))return new r(t);this.options=a.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new h,this.strm.avail_out=0;var n=s.inflateInit2(this.strm,e.windowBits);if(n!==u.Z_OK)throw new Error(f[n]);this.header=new p,s.inflateGetHeader(this.strm,this.header)}function i(t,e){var n=new r(e);if(n.push(t,!0),n.err)throw n.msg||f[n.err];return n.result}function o(t,e){return e=e||{},e.raw=!0,i(t,e)}var s=n(30),a=n(8),c=n(24),u=n(26),f=n(32),h=n(33),p=n(28),l=Object.prototype.toString;r.prototype.push=function(t,e){var n,r,i,o,f,h,p=this.strm,d=this.options.chunkSize,y=this.options.dictionary,g=!1;if(this.ended)return!1;r=e===~~e?e:e===!0?u.Z_FINISH:u.Z_NO_FLUSH,"string"==typeof t?p.input=c.binstring2buf(t):"[object ArrayBuffer]"===l.call(t)?p.input=new Uint8Array(t):p.input=t,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new a.Buf8(d),p.next_out=0,p.avail_out=d),n=s.inflate(p,u.Z_NO_FLUSH),n===u.Z_NEED_DICT&&y&&(h="string"==typeof y?c.string2buf(y):"[object ArrayBuffer]"===l.call(y)?new Uint8Array(y):y,n=s.inflateSetDictionary(this.strm,h)),n===u.Z_BUF_ERROR&&g===!0&&(n=u.Z_OK,g=!1),n!==u.Z_STREAM_END&&n!==u.Z_OK)return this.onEnd(n),this.ended=!0,!1;p.next_out&&(0!==p.avail_out&&n!==u.Z_STREAM_END&&(0!==p.avail_in||r!==u.Z_FINISH&&r!==u.Z_SYNC_FLUSH)||("string"===this.options.to?(i=c.utf8border(p.output,p.next_out),o=p.next_out-i,f=c.buf2string(p.output,i),p.next_out=o,p.avail_out=d-o,o&&a.arraySet(p.output,p.output,i,o,0),this.onData(f)):this.onData(a.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(g=!0)}while((p.avail_in>0||0===p.avail_out)&&n!==u.Z_STREAM_END);return n===u.Z_STREAM_END&&(r=u.Z_FINISH),r===u.Z_FINISH?(n=s.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===u.Z_OK):r!==u.Z_SYNC_FLUSH||(this.onEnd(u.Z_OK),p.avail_out=0,!0)},r.prototype.onData=function(t){this.chunks.push(t)},r.prototype.onEnd=function(t){t===u.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=r,e.inflate=i,e.inflateRaw=o,e.ungzip=i},function(t,e,n){"use strict";function r(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n}var i=n(8),o=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var a=new i.Buf8(256),c=0;c<256;c++)a[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;a[254]=a[254]=1,e.string2buf=function(t){var e,n,r,o,s,a=t.length,c=0;for(o=0;o<a;o++)n=t.charCodeAt(o),55296===(64512&n)&&o+1<a&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),c+=n<128?1:n<2048?2:n<65536?3:4;for(e=new i.Buf8(c),s=0,o=0;s<c;o++)n=t.charCodeAt(o),55296===(64512&n)&&o+1<a&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),n<128?e[s++]=n:n<2048?(e[s++]=192|n>>>6,e[s++]=128|63&n):n<65536?(e[s++]=224|n>>>12,e[s++]=128|n>>>6&63,e[s++]=128|63&n):(e[s++]=240|n>>>18,e[s++]=128|n>>>12&63,e[s++]=128|n>>>6&63,e[s++]=128|63&n);return e},e.buf2binstring=function(t){return r(t,t.length)},e.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},e.buf2string=function(t,e){var n,i,o,s,c=e||t.length,u=new Array(2*c);for(i=0,n=0;n<c;)if(o=t[n++],o<128)u[i++]=o;else if(s=a[o],s>4)u[i++]=65533,n+=s-1;else{for(o&=2===s?31:3===s?15:7;s>1&&n<c;)o=o<<6|63&t[n++],s--;s>1?u[i++]=65533:o<65536?u[i++]=o:(o-=65536,u[i++]=55296|o>>10&1023,u[i++]=56320|1023&o)}return r(u,i)},e.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return n<0?e:0===n?e:n+a[t[n]]>e?n:e}},function(t,e){"use strict";function n(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,s=0;0!==n;){s=n>2e3?2e3:n,n-=s;do i=i+e[r++]|0,o=o+i|0;while(--s);i%=65521,o%=65521}return i|o<<16|0}t.exports=n},function(t,e){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(t,e){"use strict";function n(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}function r(t,e,n,r){var o=i,s=r+n;t^=-1;for(var a=r;a<s;a++)t=t>>>8^o[255&(t^e[a])];return t^-1}var i=n();t.exports=r},function(t,e){"use strict";function n(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}t.exports=n},function(t,e){"use strict";var n=30,r=12;t.exports=function(t,e){var i,o,s,a,c,u,f,h,p,l,d,y,g,_,v,w,m,E,S,b,k,I,O,F,R;i=t.state,o=t.next_in,F=t.input,s=o+(t.avail_in-5),a=t.next_out,R=t.output,c=a-(e-t.avail_out),u=a+(t.avail_out-257),f=i.dmax,h=i.wsize,p=i.whave,l=i.wnext,d=i.window,y=i.hold,g=i.bits,_=i.lencode,v=i.distcode,w=(1<<i.lenbits)-1,m=(1<<i.distbits)-1;t:do{g<15&&(y+=F[o++]<<g,g+=8,y+=F[o++]<<g,g+=8),E=_[y&w];e:for(;;){if(S=E>>>24,y>>>=S,g-=S,S=E>>>16&255,0===S)R[a++]=65535&E;else{if(!(16&S)){if(0===(64&S)){E=_[(65535&E)+(y&(1<<S)-1)];continue e}if(32&S){i.mode=r;break t}t.msg="invalid literal/length code",i.mode=n;break t}b=65535&E,S&=15,S&&(g<S&&(y+=F[o++]<<g,g+=8),b+=y&(1<<S)-1,y>>>=S,g-=S),g<15&&(y+=F[o++]<<g,g+=8,y+=F[o++]<<g,g+=8),E=v[y&m];n:for(;;){if(S=E>>>24,y>>>=S,g-=S,S=E>>>16&255,!(16&S)){if(0===(64&S)){E=v[(65535&E)+(y&(1<<S)-1)];continue n}t.msg="invalid distance code",i.mode=n;break t}if(k=65535&E,S&=15,g<S&&(y+=F[o++]<<g,g+=8,g<S&&(y+=F[o++]<<g,g+=8)),k+=y&(1<<S)-1,k>f){t.msg="invalid distance too far back",i.mode=n;break t}if(y>>>=S,g-=S,S=a-c,k>S){if(S=k-S,S>p&&i.sane){t.msg="invalid distance too far back",i.mode=n;break t}if(I=0,O=d,0===l){if(I+=h-S,S<b){b-=S;do R[a++]=d[I++];while(--S);I=a-k,O=R}}else if(l<S){if(I+=h+l-S,S-=l,S<b){b-=S;do R[a++]=d[I++];while(--S);if(I=0,l<b){S=l,b-=S;do R[a++]=d[I++];while(--S);I=a-k,O=R}}}else if(I+=l-S,S<b){b-=S;do R[a++]=d[I++];while(--S);I=a-k,O=R}for(;b>2;)R[a++]=O[I++],R[a++]=O[I++],R[a++]=O[I++],b-=3;b&&(R[a++]=O[I++],b>1&&(R[a++]=O[I++]))}else{I=a-k;do R[a++]=R[I++],R[a++]=R[I++],R[a++]=R[I++],b-=3;while(b>2);b&&(R[a++]=R[I++],b>1&&(R[a++]=R[I++]))}break}}break}}while(o<s&&a<u);b=g>>3,o-=b,g-=b<<3,y&=(1<<g)-1,t.next_in=o,t.next_out=a,t.avail_in=o<s?5+(s-o):5-(o-s),t.avail_out=a<u?257+(u-a):257-(a-u),i.hold=y,i.bits=g}},function(t,e,n){"use strict";function r(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function i(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new v.Buf16(320),this.work=new v.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function o(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=U,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new v.Buf32(yt),e.distcode=e.distdyn=new v.Buf32(gt),e.sane=1,e.back=-1,N):x}function s(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,o(t)):x}function a(t,e){var n,r;return t&&t.state?(r=t.state,e<0?(n=0,e=-e):(n=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?x:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,s(t))):x}function c(t,e){var n,r;return t?(r=new i,t.state=r,r.window=null,n=a(t,e),n!==N&&(t.state=null),n):x}function u(t){return c(t,vt)}function f(t){if(wt){var e;for(g=new v.Buf32(512),_=new v.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(S(k,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;S(I,t.lens,0,32,_,0,t.work,{bits:5}),wt=!1}t.lencode=g,t.lenbits=9,t.distcode=_,t.distbits=5}function h(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new v.Buf8(o.wsize)),r>=o.wsize?(v.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),v.arraySet(o.window,e,n-r,i,o.wnext),r-=i,r?(v.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function p(t,e){var n,i,o,s,a,c,u,p,l,d,y,g,_,yt,gt,_t,vt,wt,mt,Et,St,bt,kt,It,Ot=0,Ft=new v.Buf8(4),Rt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return x;n=t.state,n.mode===X&&(n.mode=K),a=t.next_out,o=t.output,u=t.avail_out,s=t.next_in,i=t.input,c=t.avail_in,p=n.hold,l=n.bits,d=c,y=u,bt=N;t:for(;;)switch(n.mode){case U:if(0===n.wrap){n.mode=K;break}for(;l<16;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(2&n.wrap&&35615===p){n.check=0,Ft[0]=255&p,Ft[1]=p>>>8&255,n.check=m(n.check,Ft,2,0),p=0,l=0,n.mode=M;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&p)<<8)+(p>>8))%31){t.msg="incorrect header check",n.mode=pt;break}if((15&p)!==C){t.msg="unknown compression method",n.mode=pt;break}if(p>>>=4,l-=4,St=(15&p)+8,0===n.wbits)n.wbits=St;else if(St>n.wbits){t.msg="invalid window size",n.mode=pt;break}n.dmax=1<<St,t.adler=n.check=1,n.mode=512&p?Z:X,p=0,l=0;break;case M:for(;l<16;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(n.flags=p,(255&n.flags)!==C){t.msg="unknown compression method",n.mode=pt;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=pt;break}n.head&&(n.head.text=p>>8&1),512&n.flags&&(Ft[0]=255&p,Ft[1]=p>>>8&255,n.check=m(n.check,Ft,2,0)),p=0,l=0,n.mode=B;case B:for(;l<32;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}n.head&&(n.head.time=p),512&n.flags&&(Ft[0]=255&p,Ft[1]=p>>>8&255,Ft[2]=p>>>16&255,Ft[3]=p>>>24&255,n.check=m(n.check,Ft,4,0)),p=0,l=0,n.mode=j;case j:for(;l<16;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}n.head&&(n.head.xflags=255&p,n.head.os=p>>8),512&n.flags&&(Ft[0]=255&p,Ft[1]=p>>>8&255,n.check=m(n.check,Ft,2,0)),p=0,l=0,n.mode=z;case z:if(1024&n.flags){for(;l<16;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}n.length=p,n.head&&(n.head.extra_len=p),512&n.flags&&(Ft[0]=255&p,Ft[1]=p>>>8&255,n.check=m(n.check,Ft,2,0)),p=0,l=0}else n.head&&(n.head.extra=null);n.mode=q;case q:if(1024&n.flags&&(g=n.length,g>c&&(g=c),g&&(n.head&&(St=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),v.arraySet(n.head.extra,i,s,g,St)),512&n.flags&&(n.check=m(n.check,i,g,s)),c-=g,s+=g,n.length-=g),n.length))break t;n.length=0,n.mode=V;case V:if(2048&n.flags){if(0===c)break t;g=0;do St=i[s+g++],n.head&&St&&n.length<65536&&(n.head.name+=String.fromCharCode(St));while(St&&g<c);if(512&n.flags&&(n.check=m(n.check,i,g,s)),c-=g,s+=g,St)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=W;case W:if(4096&n.flags){if(0===c)break t;g=0;do St=i[s+g++],n.head&&St&&n.length<65536&&(n.head.comment+=String.fromCharCode(St));while(St&&g<c);if(512&n.flags&&(n.check=m(n.check,i,g,s)),c-=g,s+=g,St)break t}else n.head&&(n.head.comment=null);n.mode=H;case H:if(512&n.flags){for(;l<16;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(p!==(65535&n.check)){t.msg="header crc mismatch",n.mode=pt;break}p=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=X;break;case Z:for(;l<32;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}t.adler=n.check=r(p),p=0,l=0,n.mode=Y;case Y:if(0===n.havedict)return t.next_out=a,t.avail_out=u,t.next_in=s,t.avail_in=c,n.hold=p,n.bits=l,T;t.adler=n.check=1,n.mode=X;case X:if(e===F||e===R)break t;case K:if(n.last){p>>>=7&l,l-=7&l,n.mode=ut;break}for(;l<3;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}switch(n.last=1&p,p>>>=1,l-=1,3&p){case 0:n.mode=G;break;case 1:if(f(n),n.mode=nt,e===R){p>>>=2,l-=2;break t}break;case 2:n.mode=$;break;case 3:t.msg="invalid block type",n.mode=pt}p>>>=2,l-=2;break;case G:for(p>>>=7&l,l-=7&l;l<32;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if((65535&p)!==(p>>>16^65535)){t.msg="invalid stored block lengths",n.mode=pt;break}if(n.length=65535&p,p=0,l=0,n.mode=J,e===R)break t;case J:n.mode=Q;case Q:if(g=n.length){if(g>c&&(g=c),g>u&&(g=u),0===g)break t;v.arraySet(o,i,s,g,a),c-=g,s+=g,u-=g,a+=g,n.length-=g;break}n.mode=X;break;case $:for(;l<14;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(n.nlen=(31&p)+257,p>>>=5,l-=5,n.ndist=(31&p)+1,p>>>=5,l-=5,n.ncode=(15&p)+4,p>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=pt;break}n.have=0,n.mode=tt;case tt:for(;n.have<n.ncode;){for(;l<3;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}n.lens[Rt[n.have++]]=7&p,p>>>=3,l-=3}for(;n.have<19;)n.lens[Rt[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,kt={bits:n.lenbits},bt=S(b,n.lens,0,19,n.lencode,0,n.work,kt),n.lenbits=kt.bits,bt){t.msg="invalid code lengths set",n.mode=pt;break}n.have=0,n.mode=et;case et:for(;n.have<n.nlen+n.ndist;){for(;Ot=n.lencode[p&(1<<n.lenbits)-1],gt=Ot>>>24,_t=Ot>>>16&255,vt=65535&Ot,!(gt<=l);){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(vt<16)p>>>=gt,l-=gt,n.lens[n.have++]=vt;else{if(16===vt){for(It=gt+2;l<It;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(p>>>=gt,l-=gt,0===n.have){t.msg="invalid bit length repeat",n.mode=pt;break}St=n.lens[n.have-1],g=3+(3&p),p>>>=2,l-=2}else if(17===vt){for(It=gt+3;l<It;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}p>>>=gt,l-=gt,St=0,g=3+(7&p),p>>>=3,l-=3}else{for(It=gt+7;l<It;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}p>>>=gt,l-=gt,St=0,g=11+(127&p),p>>>=7,l-=7}if(n.have+g>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=pt;break}for(;g--;)n.lens[n.have++]=St}}if(n.mode===pt)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=pt;break}if(n.lenbits=9,kt={bits:n.lenbits},bt=S(k,n.lens,0,n.nlen,n.lencode,0,n.work,kt),n.lenbits=kt.bits,bt){t.msg="invalid literal/lengths set",n.mode=pt;break}if(n.distbits=6,n.distcode=n.distdyn,kt={bits:n.distbits},bt=S(I,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,kt),n.distbits=kt.bits,bt){t.msg="invalid distances set",n.mode=pt;break}if(n.mode=nt,e===R)break t;case nt:n.mode=rt;case rt:if(c>=6&&u>=258){t.next_out=a,t.avail_out=u,t.next_in=s,t.avail_in=c,n.hold=p,n.bits=l,E(t,y),a=t.next_out,o=t.output,u=t.avail_out,s=t.next_in,i=t.input,c=t.avail_in,p=n.hold,l=n.bits,n.mode===X&&(n.back=-1);break}for(n.back=0;Ot=n.lencode[p&(1<<n.lenbits)-1],gt=Ot>>>24,_t=Ot>>>16&255,vt=65535&Ot,!(gt<=l);){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(_t&&0===(240&_t)){for(wt=gt,mt=_t,Et=vt;Ot=n.lencode[Et+((p&(1<<wt+mt)-1)>>wt)],gt=Ot>>>24,_t=Ot>>>16&255,vt=65535&Ot,!(wt+gt<=l);){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}p>>>=wt,l-=wt,n.back+=wt}if(p>>>=gt,l-=gt,n.back+=gt,n.length=vt,0===_t){n.mode=ct;break}if(32&_t){n.back=-1,n.mode=X;break}if(64&_t){t.msg="invalid literal/length code",n.mode=pt;break}n.extra=15&_t,n.mode=it;case it:if(n.extra){for(It=n.extra;l<It;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}n.length+=p&(1<<n.extra)-1,p>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=ot;case ot:for(;Ot=n.distcode[p&(1<<n.distbits)-1],gt=Ot>>>24,_t=Ot>>>16&255,vt=65535&Ot,!(gt<=l);){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(0===(240&_t)){for(wt=gt,mt=_t,Et=vt;Ot=n.distcode[Et+((p&(1<<wt+mt)-1)>>wt)],gt=Ot>>>24,_t=Ot>>>16&255,vt=65535&Ot,!(wt+gt<=l);){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}p>>>=wt,l-=wt,n.back+=wt}if(p>>>=gt,l-=gt,n.back+=gt,64&_t){t.msg="invalid distance code",n.mode=pt;break}n.offset=vt,n.extra=15&_t,n.mode=st;case st:if(n.extra){for(It=n.extra;l<It;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}n.offset+=p&(1<<n.extra)-1,p>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=pt;break}n.mode=at;case at:if(0===u)break t;if(g=y-u,n.offset>g){if(g=n.offset-g,g>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=pt;break}g>n.wnext?(g-=n.wnext,_=n.wsize-g):_=n.wnext-g,g>n.length&&(g=n.length),yt=n.window}else yt=o,_=a-n.offset,g=n.length;g>u&&(g=u),u-=g,n.length-=g;do o[a++]=yt[_++];while(--g);0===n.length&&(n.mode=rt);break;case ct:if(0===u)break t;o[a++]=n.length,u--,n.mode=rt;break;case ut:if(n.wrap){for(;l<32;){if(0===c)break t;c--,p|=i[s++]<<l,l+=8}if(y-=u,t.total_out+=y,n.total+=y,y&&(t.adler=n.check=n.flags?m(n.check,o,y,a-y):w(n.check,o,y,a-y)),y=u,(n.flags?p:r(p))!==n.check){t.msg="incorrect data check",n.mode=pt;break}p=0,l=0}n.mode=ft;case ft:if(n.wrap&&n.flags){for(;l<32;){if(0===c)break t;c--,p+=i[s++]<<l,l+=8}if(p!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=pt;break}p=0,l=0}n.mode=ht;case ht:bt=L;break t;case pt:bt=D;break t;case lt:return A;case dt:default:return x}return t.next_out=a,t.avail_out=u,t.next_in=s,t.avail_in=c,n.hold=p,n.bits=l,(n.wsize||y!==t.avail_out&&n.mode<pt&&(n.mode<ut||e!==O))&&h(t,t.output,t.next_out,y-t.avail_out)?(n.mode=lt,A):(d-=t.avail_in,y-=t.avail_out,t.total_in+=d,t.total_out+=y,n.total+=y,n.wrap&&y&&(t.adler=n.check=n.flags?m(n.check,o,y,t.next_out-y):w(n.check,o,y,t.next_out-y)),t.data_type=n.bits+(n.last?64:0)+(n.mode===X?128:0)+(n.mode===nt||n.mode===J?256:0),(0===d&&0===y||e===O)&&bt===N&&(bt=P),bt)}function l(t){if(!t||!t.state)return x;var e=t.state;return e.window&&(e.window=null),t.state=null,N}function d(t,e){var n;return t&&t.state?(n=t.state,0===(2&n.wrap)?x:(n.head=e,e.done=!1,N)):x}function y(t,e){var n,r,i,o=e.length;return t&&t.state?(n=t.state,0!==n.wrap&&n.mode!==Y?x:n.mode===Y&&(r=1,r=w(r,e,o,0),r!==n.check)?D:(i=h(t,e,o,o))?(n.mode=lt,A):(n.havedict=1,N)):x}var g,_,v=n(8),w=n(25),m=n(27),E=n(29),S=n(31),b=0,k=1,I=2,O=4,F=5,R=6,N=0,L=1,T=2,x=-2,D=-3,A=-4,P=-5,C=8,U=1,M=2,B=3,j=4,z=5,q=6,V=7,W=8,H=9,Z=10,Y=11,X=12,K=13,G=14,J=15,Q=16,$=17,tt=18,et=19,nt=20,rt=21,it=22,ot=23,st=24,at=25,ct=26,ut=27,ft=28,ht=29,pt=30,lt=31,dt=32,yt=852,gt=592,_t=15,vt=_t,wt=!0;e.inflateReset=s,e.inflateReset2=a,e.inflateResetKeep=o,e.inflateInit=u,e.inflateInit2=c,e.inflate=p,e.inflateEnd=l,e.inflateGetHeader=d,e.inflateSetDictionary=y,e.inflateInfo="pako inflate (from Nodeca project)"},function(t,e,n){"use strict";var r=n(8),i=15,o=852,s=592,a=0,c=1,u=2,f=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],h=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],p=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],l=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(t,e,n,d,y,g,_,v){var w,m,E,S,b,k,I,O,F,R=v.bits,N=0,L=0,T=0,x=0,D=0,A=0,P=0,C=0,U=0,M=0,B=null,j=0,z=new r.Buf16(i+1),q=new r.Buf16(i+1),V=null,W=0;for(N=0;N<=i;N++)z[N]=0;for(L=0;L<d;L++)z[e[n+L]]++;for(D=R,x=i;x>=1&&0===z[x];x--);if(D>x&&(D=x),0===x)return y[g++]=20971520,y[g++]=20971520,v.bits=1,0;for(T=1;T<x&&0===z[T];T++);for(D<T&&(D=T),C=1,N=1;N<=i;N++)if(C<<=1,C-=z[N],C<0)return-1;if(C>0&&(t===a||1!==x))return-1;for(q[1]=0,N=1;N<i;N++)q[N+1]=q[N]+z[N];for(L=0;L<d;L++)0!==e[n+L]&&(_[q[e[n+L]]++]=L);if(t===a?(B=V=_,k=19):t===c?(B=f,j-=257,V=h,W-=257,k=256):(B=p,V=l,k=-1),M=0,L=0,N=T,b=g,A=D,P=0,E=-1,U=1<<D,S=U-1,t===c&&U>o||t===u&&U>s)return 1;for(;;){I=N-P,_[L]<k?(O=0,F=_[L]):_[L]>k?(O=V[W+_[L]],F=B[j+_[L]]):(O=96,F=0),w=1<<N-P,m=1<<A,T=m;do m-=w,y[b+(M>>P)+m]=I<<24|O<<16|F|0;while(0!==m);for(w=1<<N-1;M&w;)w>>=1;if(0!==w?(M&=w-1,M+=w):M=0,L++,0===--z[N]){if(N===x)break;N=e[n+_[L]]}if(N>D&&(M&S)!==E){for(0===P&&(P=D),b+=T,A=N-P,C=1<<A;A+P<x&&(C-=z[A+P],!(C<=0));)A++,C<<=1;if(U+=1<<A,t===c&&U>o||t===u&&U>s)return 1;E=M&S,y[E]=D<<24|A<<16|b-g|0}}return 0!==M&&(y[b+M]=N-P<<24|64<<16|0),v.bits=D,0}},function(t,e){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(t,e){"use strict";function n(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}t.exports=n},function(t,e,n){t.exports=n(2)},function(t,e,n){"use strict";function r(){this.head=null,this.tail=null,this.length=0}var i=(n(1).Buffer,n(10));t.exports=r,r.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},r.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},r.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,n=""+e.data;e=e.next;)n+=t+e.data;return n},r.prototype.concat=function(t){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var e=i.allocUnsafe(t>>>0),n=this.head,r=0;n;)n.data.copy(e,r),r+=n.data.length,n=n.next;return e}},function(t,e,n){t.exports=n(15)},function(t,e,n){(function(r){var i=function(){try{return n(9)}catch(t){}}();e=t.exports=n(16),e.Stream=i||e,e.Readable=e,e.Writable=n(13),e.Duplex=n(2),e.Transform=n(12),e.PassThrough=n(15),!r.browser&&"disable"===r.env.READABLE_STREAM&&i&&(t.exports=i)}).call(e,n(3))},function(t,e,n){t.exports=n(12)},function(t,e,n){t.exports=n(13)},function(t,e){(function(e){function n(t,e){function n(){if(!i){if(r("throwDeprecation"))throw new Error(e);r("traceDeprecation")?console.trace(e):console.warn(e),i=!0}return t.apply(this,arguments)}if(r("noDeprecation"))return t;var i=!1;return n}function r(t){try{if(!e.localStorage)return!1}catch(t){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=n}).call(e,function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){}])});

			// es6-promise.min.js
			(function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};Date.now;function n(){}Object.create;var r=0,o=function(t,e){_[r]=t,_[r+1]=e,2===(r+=2)&&a()},i="undefined"!=typeof window?window:{},s=i.MutationObserver||i.WebKitMutationObserver,u="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;var a,c,f,l,h,_=new Array(1e3);function p(){for(var t=0;t<r;t+=2){(0,_[t])(_[t+1]),_[t]=void 0,_[t+1]=void 0}r=0}function d(){}"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?a=function(){process.nextTick(p)}:s?(f=0,l=new s(p),h=document.createTextNode(""),l.observe(h,{characterData:!0}),a=function(){h.data=f=++f%2}):u?((c=new MessageChannel).port1.onmessage=p,a=function(){c.port2.postMessage(0)}):a=function(){setTimeout(p,1)};var v=void 0,y=1,m=2,w=new M;function b(e,n){if(n.constructor===e.constructor)u=e,(a=n)._state===y?j(u,a._result):u._state===m?E(u,a._result):P(a,void 0,function(t){g(u,t)},function(t){E(u,t)});else{var r=function(t){try{return t.then}catch(t){return w.error=t,w}}(n);r===w?E(e,w.error):void 0===r?j(e,n):t(r)?(i=n,s=r,o(function(t){var e=!1,n=function(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}(s,i,function(n){e||(e=!0,i!==n?g(t,n):j(t,n))},function(n){e||(e=!0,E(t,n))},t._label);!e&&n&&(e=!0,E(t,n))},e)):j(e,n)}var i,s,u,a}function g(t,e){var n;t===e?E(t,new TypeError("You cannot resolve a promise with itself")):"function"==typeof(n=e)||"object"==typeof n&&null!==n?b(t,e):j(t,e)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function j(t,e){t._state===v&&(t._result=e,t._state=y,0===t._subscribers.length||o(T,t))}function E(t,e){t._state===v&&(t._state=m,t._result=e,o(A,t))}function P(t,e,n,r){var i=t._subscribers,s=i.length;t._onerror=null,i[s]=e,i[s+y]=n,i[s+m]=r,0===s&&t._state&&o(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r,o,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?S(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}var O=new M;function S(e,n,r,o){var i,s,u,a,c=t(r);if(c){if((i=function(t,e){try{return t(e)}catch(t){return O.error=t,O}}(r,o))===O?(a=!0,s=i.error,i=null):u=!0,n===i)return void E(n,new TypeError("A promises callback cannot return that same promise."))}else i=o,u=!0;n._state!==v||(c&&u?g(n,i):a?E(n,s):e===y?j(n,i):e===m&&E(n,i))}function k(t,e,n,r){this._instanceConstructor=t,this.promise=new t(d,r),this._abortOnReject=n,this._validateInput(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._init(),0===this.length?j(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&j(this.promise,this._result))):E(this.promise,this._validationError())}k.prototype._validateInput=function(t){return e(t)},k.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},k.prototype._init=function(){this._result=new Array(this.length)};var C=k;k.prototype._enumerate=function(){for(var t=this.length,e=this.promise,n=this._input,r=0;e._state===v&&r<t;r++)this._eachEntry(n[r],r)},k.prototype._eachEntry=function(t,e){var n,r=this._instanceConstructor;"object"==typeof(n=t)&&null!==n?t.constructor===r&&t._state!==v?(t._onerror=null,this._settledAt(t._state,e,t._result)):this._willSettleAt(r.resolve(t),e):(this._remaining--,this._result[e]=this._makeResult(y,e,t))},k.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===v&&(this._remaining--,this._abortOnReject&&t===m?E(r,n):this._result[e]=this._makeResult(t,e,n)),0===this._remaining&&j(r,this._result)},k.prototype._makeResult=function(t,e,n){return n},k.prototype._willSettleAt=function(t,e){var n=this;P(t,void 0,function(t){n._settledAt(y,e,t)},function(t){n._settledAt(m,e,t)})};var R=0;var x=Y;function Y(e){this._id=R++,this._state=void 0,this._result=void 0,this._subscribers=[],d!==e&&(t(e)||function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof Y||function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}(),function(t,e){try{e(function(e){g(t,e)},function(e){E(t,e)})}catch(e){E(t,e)}}(this,e))}Y.all=function(t,e){return new C(this,t,!0,e).promise},Y.race=function(t,n){var r=new this(d,n);if(!e(t))return E(r,new TypeError("You must pass an array to race.")),r;var o=t.length;function i(t){g(r,t)}function s(t){E(r,t)}for(var u=0;r._state===v&&u<o;u++)P(this.resolve(t[u]),void 0,i,s);return r},Y.resolve=function(t,e){if(t&&"object"==typeof t&&t.constructor===this)return t;var n=new this(d,e);return g(n,t),n},Y.reject=function(t,e){var n=new this(d,e);return E(n,t),n},Y.prototype={constructor:Y,then:function(t,e){var n=this._state;if(n===y&&!t||n===m&&!e)return this;var r=new this.constructor(d),i=this._result;if(n){var s=arguments[n-1];o(function(){S(n,r,s,i)})}else P(this,r,t,e);return r},catch:function(t){return this.then(null,t)}};var D={Promise:x,polyfill:function(){var e,n;"Promise"in(e="undefined"!=typeof global?global:"undefined"!=typeof window&&window.document?window:self)&&"resolve"in e.Promise&&"reject"in e.Promise&&"all"in e.Promise&&"race"in e.Promise&&(new e.Promise(function(t){n=t}),t(n))||(e.Promise=x)}};"function"==typeof define&&define.amd?define(function(){return D}):"undefined"!=typeof module&&module.exports?module.exports=D:void 0!==this&&(this.ES6Promise=D)}).call(this);

			// pkzip.exe
			var pkzipExe = "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";

			// _base64toArrayBuffer.js
			function _base64ToArrayBuffer(base64){var binary_string = window.atob(base64);var len = binary_string.length;var bytes = new Uint8Array(len);for (var i = 0; i < len; i++){bytes[i] = binary_string.charCodeAt(i);}return bytes.buffer;}

			// ZIPFileLoader.js
			window.localStorage.clear();(function (Promise){function ZIPFileLoader(){var init_module=function(r){return{arguments:["-conf","/dosbox.conf","-c","@ECHO OFF","-c","mount a /home/web_user -t floppy","-c","SET PATH=Z:\\;A:\\","-c","mount y .","-c","IF EXIST y:/emulator/c/c.img imgmount c y:/emulator/c/c.img","-c","IF EXIST y:/emulator/c/c.img boot -l c","-c","mount -u y","-c","mount c /emulator/c","-c","c:","-c","IF EXIST AUTORUN.BAT AUTORUN.BAT"],screenIsReadOnly:false,print:function(n){},canvas:document.getElementById("containerdosbox"),waitAfterDownloading:false,noInitialRun:false,preInit:function(){BrowserFS.initialize(r);var n=new BrowserFS.EmscriptenFS;FS.mkdir("/emulator");FS.mount(n,{root:"/"},"/emulator");FS.writeFile("/dosbox.conf","[dosbox]\nmemsize=" + CPU_RAMSIZE +"\n[cpu]\ncputype=" + CPU_TYPE);var dataView = new Uint8Array(_base64ToArrayBuffer(pkzipExe));FS.writeFile("/home/web_user/PKZIP.EXE",dataView,{encoding:"binary"},function(err){});}}};var loading=Promise.resolve({files:[{drive:"c",mountpoint:"/c",file:{title:"",url:"",optional:false}}]});loading.then(function (_game_data){return new Promise(function(resolve,reject){window.localStorage.clear();var inMemoryFS=new BrowserFS.FileSystem.InMemory();var AsyncMirrorFS=BrowserFS.FileSystem.AsyncMirror,IndexedDB=BrowserFS.FileSystem.IndexedDB;deltaFS=new AsyncMirrorFS(inMemoryFS,new IndexedDB(function(e,fs){deltaFS=inMemoryFS;finish();},"fileSystemKey" in _game_data?_game_data.fileSystemKey:"RetroArch"));function finish(){game_data=_game_data;game_data.fs=new BrowserFS.FileSystem.OverlayFS(deltaFS,new BrowserFS.FileSystem.MountableFileSystem());game_data.fs.initialize(function(e){if(e){reject();}else{var Buffer=BrowserFS.BFSRequire("buffer").Buffer;function fetch(file){if("data" in file&&file.data!==null&& typeof file.data!=="undefined"){return Promise.resolve(file.data);}return new Promise(function(resolve,reject){var dataView=new Uint8Array(parent.ROMDATA);resolve(dataView);});}function mountat(drive){return function(data){if(data!==null){drive=drive.toLowerCase();var mountpoint="/"+drive;game_data.fs.getOverlayedFileSystems().readable.mount(mountpoint,new BrowserFS.FileSystem.ZipFS(new Buffer(data)));}};}Promise.all(game_data.files.map(function(f){if(f&&f.file){if(f.drive){return fetch(f.file).then(mountat(f.drive));}}return null;})).then(resolve,reject);}});}});}).then(function(game_files){if(!game_data){return null;}return Promise.resolve();},function(){}).then(function(){if(!game_data){return null;}Module=init_module(game_data.fs);if(game_data.emulatorJS){return null;}else{}return null;},function(){});};window.ZIPFileLoader=ZIPFileLoader;})(typeof Promise==="undefined"?ES6Promise.Promise:Promise);

			// attachScript.min.js
			function attachScript(e){return new Promise(function(t,r){var n;function a(e){e.target==n&&(n.removeEventListener("load",a),n.removeEventListener("error",o),t())}function o(e){e.target==n&&(n.removeEventListener("load",a),n.removeEventListener("error",o),r())}if(e){var i=document.getElementsByTagName("head")[0];(n=document.createElement("script")).addEventListener("load",a),n.addEventListener("error",o),n.type="text/javascript",n.src=e,i.appendChild(n)}})}

			// mobile compatibility
			var JoyStick=function(t,e){var i=void 0===(e=e||{}).title?"joystick":e.title,n=void 0===e.width?0:e.width,o=void 0===e.height?0:e.height,h=void 0===e.internalFillColor?"rgba(0,0,0,0.25)":e.internalFillColor,r=void 0===e.internalLineWidth?2:e.internalLineWidth,d=(void 0===e.internalStrokeColor||e.internalStrokeColor,void 0===e.externalLineWidth?2:e.externalLineWidth),a=void 0===e.externalStrokeColor?"rgba(0,0,0,0)":e.externalStrokeColor,c=document.getElementById(t),l=document.createElement("canvas");l.id=i,0==n&&(n=c.clientWidth),0==o&&(o=c.clientHeight),l.width=n,l.height=o,c.appendChild(l);var u=l.getContext("2d"),g=0,s=2*Math.PI,f=(l.width-110)/2,v=f+5,w=f+30,p=l.width/2,C=l.height/2,L=l.width/10,W=-1*L,k=l.height/10,E=-1*k,m=p,S=C;function x(){u.beginPath(),u.arc(p,C,w,0,s,!1),u.lineWidth=d,u.strokeStyle=a,u.stroke()}function y(){u.beginPath(),m<f&&(m=v),m+f>l.width&&(m=l.width-v),S<f&&(S=v),S+f>l.height&&(S=l.height-v),u.arc(m,S,f,0,s,!1),u.fillStyle=h,u.fill(),u.lineWidth=r,u.strokeStyle="rgba(255,255,255,0.175)",u.stroke()}l.addEventListener("touchstart",function(t){g=1},!1),l.addEventListener("touchmove",function(t){if(t.preventDefault(),1==g)try{for(var e=l.getBoundingClientRect(),i=e.left+l.offsetWidth,n=e.top,o=-1,h=0;h<t.touches.length;h++)t.touches[h].pageX<=i&&t.touches[h].pageY>=n&&(o=h);o>-1&&(m=t.touches[o].pageX,S=l.height-(window.innerHeight-t.touches[o].pageY),m-=l.offsetLeft,u.clearRect(0,0,l.width,l.height),x(),y())}catch(t){}},!1),l.addEventListener("touchend",function(t){g=0,m=p,S=C,u.clearRect(0,0,l.width,l.height),x(),y()},!1),l.addEventListener("mousedown",function(t){g=1},!1),l.addEventListener("mousemove",function(t){1==g&&(m=t.pageX,S=l.height-(window.innerHeight-t.pageY),m-=l.offsetLeft,S-=l.offsetTop,u.clearRect(0,0,l.width,l.height),x(),y())},!1),l.addEventListener("mouseup",function(t){g=0,m=p,S=C,u.clearRect(0,0,l.width,l.height),x(),y()},!1),x(),y(),this.GetWidth=function(){return l.width},this.GetHeight=function(){return l.height},this.GetPosX=function(){return m},this.GetPosY=function(){return S},this.GetX=function(){return((m-p)/v*100).toFixed()},this.GetY=function(){return((S-C)/v*100*-1).toFixed()},this.GetDir=function(){var t="",e=m-p,i=S-C;return i>=E&&i<=k&&(t="C"),i<E&&(t="N"),i>k&&(t="S"),e<W&&("C"==t?t="W":t+="W"),e>L&&("C"==t?t="E":t+="E"),t}};
			function isMobileDevice(){return!!(navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/Windows Phone/i))}
			function sendVirtualKey(eventType,keyCode,charCode){try{var e=document.createEventObject?document.createEventObject():document.createEvent("Events");if(e.initEvent&&e.initEvent(eventType,!0,!0),e.keyCode=keyCode,e.which=keyCode,e.charCode=charCode,"undefined"!=typeof JSEvents&&JSEvents.eventHandlers&&JSEvents.eventHandlers.length>0)for(var i=0;i<JSEvents.eventHandlers.length;++i)JSEvents.eventHandlers[i].target!=Module.canvas&&JSEvents.eventHandlers[i].target!=window||JSEvents.eventHandlers[i].eventTypeString!=eventType||JSEvents.eventHandlers[i].handlerFunc(e);else Module.canvas.dispatchEvent?Module.canvas.dispatchEvent(e):Module.canvas.fireEvent("on"+eventType,e)}catch(e){}}
			function showVirtualJoystick(){joystick = new JoyStick("joyDiv");setInterval(function(){var joystickDirection = joystick.GetDir();switch(joystickDirection){case "N":try{sendVirtualKey("keydown",38,38);sendVirtualKey("keyup",40,40);sendVirtualKey("keyup",37,37);sendVirtualKey("keyup",39,39)}catch(err){}break;case "S":try{sendVirtualKey("keydown",40,40);sendVirtualKey("keyup",38,38);sendVirtualKey("keyup",37,37);sendVirtualKey("keyup",39,39)}catch(err){}break;case "W":try{sendVirtualKey("keydown",37,37);sendVirtualKey("keyup",38,38);sendVirtualKey("keyup",40,40);sendVirtualKey("keyup",39,39)}catch(err){}break;case "E":try{sendVirtualKey("keydown",39,39);sendVirtualKey("keyup",38,38);sendVirtualKey("keyup",40,40);sendVirtualKey("keyup",37,37)}catch(err){}break;case "NW":try{sendVirtualKey("keydown",38,38);sendVirtualKey("keydown",37,37);sendVirtualKey("keyup",39,39);sendVirtualKey("keyup",40,40)}catch(err){}break;case "NE":try{sendVirtualKey("keydown",38,38);sendVirtualKey("keydown",39,39);sendVirtualKey("keyup",40,40);sendVirtualKey("keyup",37,37)}catch(err){}break;case "SE":try{sendVirtualKey("keydown",40,40);sendVirtualKey("keydown",39,39);sendVirtualKey("keyup",38,38);sendVirtualKey("keyup",37,47)}catch(err){}break;case "SW":try{sendVirtualKey("keydown",40,40);sendVirtualKey("keydown",37,37);sendVirtualKey("keyup",38,38);sendVirtualKey("keyup",39,49)}catch(err){}break;default:try{sendVirtualKey("keyup",39,39);sendVirtualKey("keyup",38,38);sendVirtualKey("keyup",40,40);sendVirtualKey("keyup",37,37)}catch(err){}break}},25)}

			/*
			---------------------------------------------------------------------------------------------------------
			- FUNCTIONS TO ALLOW TO DOWNLOAD A FILE FROM BROWSERFS                                                  -
			---------------------------------------------------------------------------------------------------------
			*/

			function download_Save(filePath,filename)
				{
				try
					{
					// READING THE FILE THAT WILL BE DOWNLOADED
					var rawReading = FS.readFile("/emulator" + filePath);
					var fileAsArray = new Uint8Array(rawReading);

					// IF RUNNING THE MOBILE APP, TELLING THE NAME THAT THE DOWNLOADED FILE WILL HAVE
					console.log("FILENAME=" + filename);

					// DOWNLOADING THE FILE
					download_Blob(fileAsArray, filename, "application/octet-stream");

					// SHOWING THE 'FILE SAVED' LABEL
					document.getElementsByClassName("gui_saving")[0].style.display = "block";

					// CLEARING THE PREVIOUS TIMEOUT FOR HIDING THE 'FILE SAVED' LABEL (IF ANY)
					try{clearTimeout(mySavedGameLabelTimeout)}catch(err){}

					// HIDING THE 'FILE SAVED' LABEL AFTER THREE SECONDS
					mySavedGameLabelTimeout = setTimeout(function()
						{
						document.getElementsByClassName("gui_saving")[0].style.display = "none";
						}, 3000);
					}
					catch(err)
					{
					}
				}

			function download_Blob(data, fileName, mimeType)
				{
				var blob, url;
				blob = new Blob([data], {type: mimeType});
				url = window.URL.createObjectURL(blob);
				download_URL(url, fileName);
				setTimeout(function()
					{
					return window.URL.revokeObjectURL(url);
					}, 1000);
				}

			function download_URL(data, fileName)
				{
				var a;
				a = document.createElement("a");
				a.href = data;
				a.download = fileName;
				document.body.appendChild(a);
				a.style = "display: none";
				a.click();
				a.remove();
				}

			function downloadROMState()
				{
				// CHECKING IF THE FILE DOWNLOAD DIALOG IS VISIBLE
				if (document.getElementsByClassName("filedownload_container")[0].style.display == "block")
					{
					// HIDING THE FILE DOWNLOAD DIALOG
					document.getElementsByClassName("filedownload_container")[0].style.display = "none";
					}
					else
					{
					// SETTING THE DEFAULT PATH TO THE FILE DOWNLOAD DIALOG
					download_PathCurrent = download_PathRoot;

					// GETTING THE SYSTEM FILE LIST IN ORDER TO DISPLAY THE FILE DOWNLOAD DIALOG
					download_getFileList();
					}
				}

			function download_HideFileList()
				{
				// SETTING THE DEFAULT PATH TO THE FILE DOWNLOAD DIALOG
				download_PathCurrent = download_PathRoot;

				// HIDING THE FILE DOWNLOAD DIALOG
				document.getElementsByClassName("filedownload_container")[0].style.display = "none";
				}

			function download_getFileList()
				{
				// GETTING THE SELECT LIST
				var selectList = document.getElementsByClassName("filedownload_select")[0];

				// CLEARING THE SELECT LIST
				selectList.innerHTML = "";

				// GETTING THE CURRENT DOWNLOAD PATH
				var pathToShow = download_PathCurrent;

				try
					{
					// REPLACING SLASHES FOR BACKSLASHES
					pathToShow = "C:\\" + download_PathCurrent.substr(3,download_PathCurrent.length);
					var re = new RegExp("/", "g");
					pathToShow = pathToShow.replace(re, "\\");
					}
					catch(err)
					{
					}

				// UPDATING THE CURRENT LOCATION IN THE FILE LIST DIALOG
				document.getElementsByClassName("filedownload_location_value")[0].innerHTML = pathToShow;

				// SHOWING THE FILE LIST DIALOG AND HIDING THE FOLDER LIST DIALOG
				document.getElementsByClassName("fileupload_container")[0].style.display = "none";
				document.getElementsByClassName("filedownload_container")[0].style.display = "block";

				try
					{
					// READING EVERY ITEM WITHIN THE PATH
					game_data.fs.readdir(download_PathCurrent, function(myItem, content)
						{
						// CHECKING IF THE ITEM IS A FOLDER
						if (!myItem)
							{
							// SETTING THE VARIABLES THAT WILL BE STORING THE FOLDER NAMES AND FILE NAMES
							var rawListFolders = [];
							var rawListFiles = [];

							// LOOPING THE CONTENT OF THE FOLDER
							for(var i = 0; i < content.length; i++)
								{
								// CHECKING THE OBJECT TYPE
								game_data.fs.readdir(download_PathCurrent + "/" + content[i], function(myItem2, content2)
									{
									// CHECKING IF THE ITEM IS A FOLDER
									if (!myItem2)
										{
										// ADDING ITEM TO THE FOLDER LIST
										rawListFolders.push(content[i]);
										}
										else
										{
										// ADDING ITEM TO THE FILE LIST
										rawListFiles.push(content[i]);
										}
									});
								}

							// CHECKING IF THE CURRENT PATH IS THE ROOT PATH
							if (download_PathCurrent!=download_PathRoot)
								{
								// ADDING THE 'GO BACK TO THE PARENT FOLDER' ITEM
								rawListFolders.push("..");
								}

							// SORTING THE FOLDERS
							rawListFolders.sort(function(a,b){if(a.toLowerCase()<b.toLowerCase())return -1;if(a.toLowerCase()>b.toLowerCase())return 1;return 0;});

							// SORTING THE FILES
							rawListFiles.sort(function(a,b){if(a.toLowerCase()<b.toLowerCase())return -1;if(a.toLowerCase()>b.toLowerCase())return 1;return 0;});

							// ADDING THE FOLDERS TO THE SELECT LIST
							for(var i = 0; i < rawListFolders.length; i++)
								{
								var opt = "<div class='filedownload_fileitem' onclick='download_checkContent(\"" + rawListFolders[i].toUpperCase() + "\",true)'><span class='filedownload_fileitem_name'>&#60;DIR&#62; " + rawListFolders[i].toUpperCase() + "</span></div>";
								selectList.innerHTML = selectList.innerHTML + opt;
								}

							// ADDING THE FILES TO THE SELECT LIST
							for(var i = 0; i < rawListFiles.length; i++)
								{
								var opt = "<div class='filedownload_fileitem' onclick='download_checkContent(\"" + rawListFiles[i].toUpperCase() + "\",false)'><span class='filedownload_fileitem_name'>" + rawListFiles[i].toUpperCase() + "</span></div>";
								selectList.innerHTML = selectList.innerHTML + opt;
								}
							}
							else
							{
							// IF THE PATH IS NOT A FOLDER, IT IS A FILE, THAT MUST BE DOWNLOADED
							downloadROMState();
							}
						});
					}
					catch(err)
					{
					}
				}

			function download_checkContent(selectedItemValue,isFolder)
				{
				try
					{
					// CHECKING IF IT IS A FOLDER
					if (isFolder==true)
						{
						// CHECKING IF IT IS A 'GO BACK TO THE PARENT FOLDER' ITEM
						if (selectedItemValue=="..")
							{
							// UPDATING THE CURRENT PATH WITH THE PARENT FOLDER
							download_PathCurrent = download_PathCurrent.substr(0,download_PathCurrent.lastIndexOf("/"));
							}
							else
							{
							// UPDATING THE CURRENT PATH WITH THE SELECTED FOLDER
							download_PathCurrent = download_PathCurrent + "/" + selectedItemValue;
							}

						// CALLING THE FUNCTION THAT GETS THE FILE LIST BUT WITH THE UPDATED PATH
						download_getFileList();
						}
						else
						{
						// DOWNLOADING THE SELECTED FILE
						download_Save(download_PathCurrent + "/" + selectedItemValue,selectedItemValue);

						// HIDING THE FILE DOWNLOAD DIALOG
						download_HideFileList();
						}
					}
					catch(err)
					{
					}
				}

			/*
			---------------------------------------------------------------------------------------------------------
			- FUNCTIONS TO ALLOW TO UPLOAD A FILE FROM BROWSERFS                                                    -
			---------------------------------------------------------------------------------------------------------
			*/

			function uploadROMState()
				{
				// CLICK THE FILE SELECTOR
				document.getElementById("fileupload_uploader").click();
				}

			function upload_getFile(files)
				{
				try
					{
					var filereader = new FileReader();
					filereader.file_name = files[0].name;
					filereader.onload = function()
						{
						// SETTING THE FILE CONTENT FOR THE EMULATOR
						SAVEDATA = this.result;
						SAVENAME = files[0].name;

						// CLEARING THE SELECTED FILE VALUE
						document.getElementById("fileupload_uploader").value = null;

						// GETTING THE SYSTEM FOLDER LIST IN ORDER TO DISPLAY THE FILE UPLOAD DIALOG
						upload_getFolderList();
						};

					// READING THE SELECTED FILE
					filereader.readAsArrayBuffer(files[0]);
					}
					catch(err)
					{
					}
				}

			function upload_getFolderList()
				{
				// GETTING THE SELECT LIST
				var selectList = document.getElementsByClassName("fileupload_select")[0];

				// CLEARING THE FOLDER LIST
				selectList.innerHTML = "";

				// GETTING THE CURRENT UPLOAD PATH
				var pathToShow = upload_PathCurrent;

				try
					{
					// REPLACING SLASHES FOR BACKSLASHES
					pathToShow = "C:\\" + upload_PathCurrent.substr(3,upload_PathCurrent.length);
					var re = new RegExp("/", "g");
					pathToShow = pathToShow.replace(re, "\\");
					}
					catch(err)
					{
					}

				// UPDATING THE CURRENT LOCATION IN THE FILE LIST DIALOG
				document.getElementsByClassName("fileupload_location_value")[0].innerHTML = pathToShow;

				// SHOWING THE FOLDER LIST DIALOG AND HIDING THE FILE LIST DIALOG
				document.getElementsByClassName("fileupload_container")[0].style.display = "block";
				document.getElementsByClassName("filedownload_container")[0].style.display = "none";

				try
					{
					// READING EVERY ITEM WITHIN THE PATH
					game_data.fs.readdir(upload_PathCurrent, function(myItem, content)
						{
						// CHECKING IF THE ITEM IS A FOLDER
						if (!myItem)
							{
							// SETTING THE VARIABLES THAT WILL BE STORING THE FOLDER NAMES
							var rawListFolders = [];

							// LOOPING THE CONTENT OF THE FOLDER
							for(var i = 0; i < content.length; i++)
								{
								// CHECKING THE OBJECT TYPE
								game_data.fs.readdir(upload_PathCurrent + "/" + content[i], function(myItem2, content2)
									{
									// CHECKING IF THE ITEM IS A FOLDER
									if (!myItem2)
										{
										// ADDING ITEM TO THE FOLDER LIST
										rawListFolders.push(content[i]);
										}
									});
								}

							// CHECKING IF THE CURRENT PATH IS THE ROOT PATH
							if (upload_PathCurrent!=upload_PathRoot)
								{
								// ADDING THE 'GO BACK TO THE PARENT FOLDER' ITEM
								rawListFolders.push("..");
								}

							// SORTING THE FOLDERS
							rawListFolders.sort(function(a,b){if(a.toLowerCase()<b.toLowerCase())return -1;if(a.toLowerCase()>b.toLowerCase())return 1;return 0;});

							// ADDING THE FOLDERS TO THE SELECT LIST
							for(var i = 0; i < rawListFolders.length; i++)
								{
								var opt = "<div class='fileupload_fileitem' onclick='upload_checkContent(\"" + rawListFolders[i].toUpperCase() + "\",true)'><span class='fileupload_fileitem_name'>&#60;DIR&#62; " + rawListFolders[i].toUpperCase() + "</span></div>";
								selectList.innerHTML = selectList.innerHTML + opt;
								}
							}
						});
					}
					catch(err)
					{
					}
				}

			function upload_checkContent(selectedItemValue,isFolder)
				{
				try
					{
					// CHECKING IF IT IS A FOLDER
					if (isFolder==true)
						{
						// CHECKING IF IT IS A 'GO BACK TO THE PARENT FOLDER' ITEM
						if (selectedItemValue=="..")
							{
							// UPDATING THE CURRENT PATH WITH THE PARENT FOLDER
							upload_PathCurrent = upload_PathCurrent.substr(0,upload_PathCurrent.lastIndexOf("/"));
							}
							else
							{
							// UPDATING THE CURRENT PATH WITH THE SELECTED FOLDER
							upload_PathCurrent = upload_PathCurrent + "/" + selectedItemValue;
							}

						// CALLING THE FUNCTION THAT GETS THE FOLDER LIST BUT WITH THE UPDATED PATH
						upload_getFolderList();
						}
					}
					catch(err)
					{
					}
				}

			function upload_writeFile()
				{
				try
					{
					// WRITING THE UPLOADED FILE INTO THE FILE SYSTEM
					var dataView = new Uint8Array(SAVEDATA);
					FS.writeFile("/emulator" + upload_PathCurrent + "/" + SAVENAME, dataView, {encoding: "binary"}, function(err){});
					}
					catch(err)
					{
					}

				// HIDING THE FILE UPLOAD DIALOG
				upload_HideFolderList();
				}

			function upload_ResetPath()
				{
				// SETTING THE DEFAULT PATH TO THE FILE UPLOAD DIALOG
				upload_PathCurrent = upload_PathRoot;

				// GETTING THE SYSTEM FILE LIST IN ORDER TO DISPLAY THE FILE UPLOAD DIALOG
				upload_getFolderList();
				}

			function upload_HideFolderList()
				{
				// SETTING THE DEFAULT PATH TO THE FILE UPLOAD DIALOG
				upload_PathCurrent = upload_PathRoot;

				// HIDING THE FILE UPLOAD DIALOG
				document.getElementsByClassName("fileupload_container")[0].style.display = "none";
				}

			/*
			---------------------------------------------------------------------------------------------------------
			- FUNCTIONS TO INCRESE AND DECREASE CYCLES                                                              -
			---------------------------------------------------------------------------------------------------------
			*/

			function decreaseCycles()
				{
				// PRESSING CTRL+F11
				sendVirtualKey("keydown",17,17);
				sendVirtualKey("keydown",122,122);

				// RELEASING CTRL+F11 AFTER 100 MS
				setTimeout(function()
					{
					sendVirtualKey("keyup",17,17);
					sendVirtualKey("keyup",122,122);
					},100);
				}

			function increaseCycles()
				{
				// PRESSING CTRL+F12
				sendVirtualKey("keydown",17,17);
				sendVirtualKey("keydown",123,123);

				// RELEASING CTRL+F12 AFTER 100 MS
				setTimeout(function()
					{
					sendVirtualKey("keyup",17,17);
					sendVirtualKey("keyup",123,123);
					},100);
				}

			/*
			---------------------------------------------------------------------------------------------------------
			- FUNCTION TO TOGGLE SOUND STATUS                                                                       -
			---------------------------------------------------------------------------------------------------------
			*/

			function toggleSound()
				{
				// CHECKING IF THE AUDICONTEXT IS SUSPENDED (MUTED)
				if (SDL2.audioContext.state == "suspended")
					{
					// RESUMING THE AUDIOCONTEXT
					SDL2.audioContext.resume();
					}
				else if (SDL2.audioContext.state == "running")
					{
					// PAUSING THE AUDIO CONTEXT
					SDL2.audioContext.suspend();
					}
				}

			/*
			---------------------------------------------------------------------------------------------------------
			- FUNCTIONS TO RUN DOSBOX AND SEVERAL EVENTS                                                            -
			---------------------------------------------------------------------------------------------------------
			*/

			function loadZipIntoVD()
				{
				// LOADING AND DECOMPRESSING THE SELECTED ZIP FILE IN THE BROWSER FILE SYSTEM
				var zipLoader = new ZIPFileLoader();

				// LOADING THE DOSBOX EMULATOR
				attachScript("Emulatrix_DOSBox.js");
				}

			function mouseChecker()
				{
				// CHECKING IF THE POINTER IS NOT LOCKED IN THE DOSBOX EMULATION
				if(document.pointerLockElement!=document.getElementById("containerdosbox"))
					{
					// CALLING THE PARENT FUNCTION FOR CLEARING THE MOVEMENTS IDLE TIMER
					parent.goBackButtonResetIncrement();
					}
					else
					{
					// HIDING THE FILE UPLOAD AND DOWNLOAD DIALOGS
					document.getElementsByClassName("filedownload_container")[0].style.display = "none";
					document.getElementsByClassName("fileupload_container")[0].style.display = "none";
					}
				}

			function detectAltEnter(e)
				{
				try
					{
					// GETTING THE KEY EVENT
					e = e || window.event;

					// CHECKING IF IT IS A ALT+ENTER COMBINATION
					if (e.altKey && e.keyCode == 13)
						{
						// PREVENTING THE EVENT IN ORDER TO NOT SHOW THE BLACK MARGIN BUG
						// THAT IT'S DISPLAYED AS A 'FULLSCREEN' MODE
						e.preventDefault();
						e.stopPropagation();
						e.stopImmediatePropagation();
						}
					}
					catch(err)
					{
					}
				}

			window.addEventListener("blur", function()
				{
				try
					{
					// PAUSING THE DOSBOX EMULATION
					DOSBox_execute = false;
					}
					catch(err)
					{
					}
				});

			window.addEventListener("focus", function()
				{
				try
					{
					// RESUMING THE DOSBOX EMULATION
					DOSBox_execute = true;

					// EXECUTING THE LAST FUNCTION WITH THE LAST TIMEOUT
					Browser.safeSetTimeout(DOSBox_lastFunc,DOSBox_lastTimeout);
					}
					catch(err)
					{
					}
				});

			window.addEventListener("load", function()
				{
				// SHOWING THE CANVAS CONTAINER
				document.getElementById("container").style.display="block";

				// LOADING THE ZIP FILE
				setTimeout(function(){loadZipIntoVD()},1000);

				// SETTING FUNCTIONS THAT WILL BE CALLED WHEN THE USER CLICKS, DOUBLE CLICKS OR MOVES THE MOUSE IN ORDER TO SHOW THE SYSTEM ICONS
				document.addEventListener("click", mouseChecker, false);
				document.addEventListener("dblclick", mouseChecker, false);
				document.addEventListener("mousemove", mouseChecker, false);
				document.addEventListener("pointerlockchange", mouseChecker, false);
				document.addEventListener("mozpointerlockchange", mouseChecker, false);
				document.addEventListener("webkitpointerlockchange", mouseChecker, false);

				// BUGFIX FOR FULLSCREEN
				document.addEventListener("keydown",function(e){detectAltEnter(e)});
				document.addEventListener("keypress",function(e){detectAltEnter(e)});
				document.addEventListener("keyup", function(e){detectAltEnter(e)});

				// CLEARING THE SELECTED FILE TO UPLOAD VALUE
				document.getElementById("fileupload_uploader").value = null;

				// CHECKING IF IT IS A MOBILE DEVICE
				if (isMobileDevice()==true)
					{
					// SHOWING THE VIRTUAL BUTTONS AND ASSIGNING TOUCHING EVENTS TO EACH ONE OF THEM
					document.getElementsByClassName("gui_dosbox_keyesc")[0].style.display = "block";
					document.getElementsByClassName("gui_dosbox_keyesc")[0].addEventListener("touchstart",function(event){sendVirtualKey("keydown",27,27)});
					document.getElementsByClassName("gui_dosbox_keyesc")[0].addEventListener("touchend",function(event){sendVirtualKey("keyup",27,27)});
					document.getElementsByClassName("gui_dosbox_keyalt")[0].style.display = "block";
					document.getElementsByClassName("gui_dosbox_keyalt")[0].addEventListener("touchstart",function(event){sendVirtualKey("keydown",18,18)});
					document.getElementsByClassName("gui_dosbox_keyalt")[0].addEventListener("touchend",function(event){sendVirtualKey("keyup",18,18)});
					document.getElementsByClassName("gui_dosbox_keyctrl")[0].style.display = "block";
					document.getElementsByClassName("gui_dosbox_keyctrl")[0].addEventListener("touchstart",function(event){sendVirtualKey("keydown",17,17)});
					document.getElementsByClassName("gui_dosbox_keyctrl")[0].addEventListener("touchend",function(event){sendVirtualKey("keyup",17,17)});
					document.getElementsByClassName("gui_dosbox_keyshift")[0].style.display = "block";
					document.getElementsByClassName("gui_dosbox_keyshift")[0].addEventListener("touchstart",function(event){sendVirtualKey("keydown",16,16)});
					document.getElementsByClassName("gui_dosbox_keyshift")[0].addEventListener("touchend",function(event){sendVirtualKey("keyup",16,16)});
					document.getElementsByClassName("gui_dosbox_keyenter")[0].style.display = "block";
					document.getElementsByClassName("gui_dosbox_keyenter")[0].addEventListener("touchstart",function(event){sendVirtualKey("keydown",13,13)});
					document.getElementsByClassName("gui_dosbox_keyenter")[0].addEventListener("touchend",function(event){sendVirtualKey("keyup",13,13)});
					document.getElementsByClassName("gui_dosbox_keyspace")[0].style.display = "block";
					document.getElementsByClassName("gui_dosbox_keyspace")[0].addEventListener("touchstart",function(event){sendVirtualKey("keydown",32,32)});
					document.getElementsByClassName("gui_dosbox_keyspace")[0].addEventListener("touchend",function(event){sendVirtualKey("keyup",32,32)});

					// SHOWING THE VIRTUAL JOYSTICK
					document.getElementsByClassName("gui_joystick")[0].style.display = "block";
					showVirtualJoystick();
					}
				});

			window.onerror = function (msg, url, lineNo, columnNo, error)
				{
				// SOMETIMES THE DOSBOX SCRIPT WON'T BE SUCCESSFULLY EXECUTED IF THE PAGE TAB IS NOT ACTIVE.
				// WINDOW.ONLOAD DOESN'T FIX THIS.
				// THAT'S WHY THE CODE BELOW GIVES ANOTHER TRY TO RUN THE DOSBOX SCRIPT WITH THE SELECTED ZIP FILE.

				setTimeout(function()
					{
					document.location.reload(true);
					}, 5000);
				return true;
				}
		</script>

		<div class="gui_pleasewait_title"><script>document.write(parent.STRING_STARTINGEMULATOR);</script></div><div class="pleasewait"><div class="lds-spinner"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>
		<div id="container">

			<canvas id="containerdosbox" oncontextmenu="event.preventDefault()"></canvas>

			<div class="gui_joystick" id="joyDiv"></div>
			<div class="gui_dosbox_keyesc" oncontextmenu="return false;">ESC</div>
			<div class="gui_dosbox_keyalt" oncontextmenu="return false;">ALT</div>
			<div class="gui_dosbox_keyctrl" oncontextmenu="return false;">CTRL</div>
			<div class="gui_dosbox_keyshift" oncontextmenu="return false;">SHIFT</div>
			<div class="gui_dosbox_keyenter" oncontextmenu="return false;">ENTER</div>
			<div class="gui_dosbox_keyspace" oncontextmenu="return false;">SPACE</div>

			<div class="filedownload_container">
				<div class="filedownload_title">
					<span class="filedownload_title_value" id="filedownload_title_value"><script>document.write(parent.STRING_DOWNLOADFILE);</script></span>
					<div class="filedownload_title_close" onclick="download_HideFileList()">X</div>
				</div>
				<div class="filedownload_location"><div class="filedownload_location_value">&nbsp;</div></div>
				<div class="filedownload_select"></div>
			</div>

			<div class="fileupload_container">
				<div class="fileupload_title">
					<span class="fileupload_title_value" id="fileupload_title_value"><script>document.write(parent.STRING_SELECTFOLDER);</script></span>
					<div class="fileupload_title_close" onclick="upload_HideFolderList()">X</div>
				</div>
				<div class="fileupload_location"><div class="fileupload_location_value">&nbsp;</div></div>
				<div class="fileupload_select"></div>
				<div class="fileupload_submit" onclick="upload_writeFile()"><script>document.write(parent.STRING_UPLOADFILE);</script></div>
			</div>

			<div class="gui_saving"><script>document.write(parent.STRING_SAVED);</script></div>

			<input type="file" class="fileupload_uploader" id="fileupload_uploader" onchange="upload_getFile(event.target.files);" />

		</div>
	</body>
</html>